每到一个中央先找 WiFi,曾经是有数现代人的习惯了。然而,遇到奇奇怪怪的 WiFi 名(SSID)可要审慎了。最近就有人在应用 iPhone 手机连贯 WiFi 时遇到了麻烦。
平安研究员 Carl Schou 在用 iPhone 手机尝试连贯名称为 %p%s%s%s%s%n 的 WiFi 后,发现手机 WiFi 性能无奈应用,手动关上 WiFi 也会主动敞开,重启手机或更改 WiFi 名都没用。
Carl Schou 首先在运行 iOS 14.4.2 版本的 iPhone XS 上测试发现了这一 bug,起初在 iOS 14.6 版本上的试验表明这一 bug 仍然存在。
Carl Schou 在 Twitter 上颁布这一 bug 后,很多网友在本人的 iPhone 手机上复现了这一问题,甚至有网友发现该 bug 还会影响 AirDrop 的失常应用。
不过,目前安卓手机用户并未受到该 bug 的影响。
尽管看似无厘头,但这个 bug 是实在存在的。有网友认为该 bug 应该失去更多关注,这有可能是权限晋升破绽,万一被利用,很多 iPhone 用户将受影响。
iPhone 为什么会呈现这样的 bug?
该 bug 被爆出后,许多平安研究员进行了剖析,认为有可能是输出解析问题导致了该 bug。
当 WiFi 名称呈现带有 % 的字符串时,iOS 可能会将 WiFi 名误认为字符串格式化说明符。
而在 C 和 C-style 语言中,字符串格式化说明符具备特定含意,常被语言编译器解决为变量名或命令,而不是文本。例如,命令 printf("geeks for %ngeeks", &c);
不会输入 %n,而是将 %n 后面的字符数存储在变量 c 中。%n 只是格式化说明符,不是真正的文本字符串。因而,该命令的输入是 geeks for geeks,不蕴含 %n。
同理,当 iPhone 试图连贯 WiFi %p%s%s%s%s%n 时,iPhone 并未将这串字符了解为文本而是作为非凡字符串来解决,导致系统内存损坏,进而启动爱护机制,强制将 WiFi 性能设定为敞开状态。
如何解决?
只管重启手机没能解决该 bug,但实际上它的解决办法并不麻烦:
设置 > 通用 > 还原 > 还原网络设置(Settings > General > Reset > Reset Network Settings)
之后,你就能够重新配置网络设置了。
当然要想防患于未然,最好的方法是不要连贯不平安的网络,尤其是 WiFi 名中蕴含 % 的无线网络。当然,目前只有 iPhone 用户要分外留神这一点。
参考链接:
- https://www.bleepingcomputer….
- https://www.zdnet.com/article…
- https://blog.chichou.me/2021/…
- https://twitter.com/vm_call