早在前段时间,我们就发布过一则关于 iOS 系统存在的 WiFi 代码漏洞,恶意用户可以通过新建一个特殊代码命名的 WiFi 热点,让链接者的设备网络瘫痪。
具体操作很简单,只需要将自己的 WiFi 热点名称改为:%p%s%s%s%s%n
然后用 iPhone 或者 iPad 链接到这个热点之后,设备就会出现网络无法使用,WiFi 无法打开等情况,需要重置网络设置才能恢复。
而在近日,开发者又发现了比这个代码 WiFi 漏洞更加严重的问题。
按照开发者 Schou 表示,如果将 WiFi 热点设置成:%SecretClub%power ,那么链接的 iPhone 会直接失去网络功能,无法使用 WiFi 和相关功能。
比之前那个代码还要严重的是,开发者即使是重置设备的网络设置,依然是无法继续使用,需要恢复整部手机的出厂设置才行。
而这两个问题都是出自苹果的底层系统逻辑错误。
因为在代码中,% 语法在编程中常用,即将变量格式化为输出字符串,C 语言中,%n 即不打印任何内容并将到目前为止已打印的字符数写入 int 变量。
而将 WiFi 名称改成这个代码之后,系统可能将未分析的 SSID 传递给执行字符串格式设置的内部库,从而导致任意内存写入和缓冲区溢出。
如果有恶意份子将公共的 WiFi 改成这种名字,那么无意链接的用户将会让自己手机 WiFi 失效,特别恶劣。
在之前的漏洞上,大家还可以尝鲜测试一下,毕竟重置一下网络设置并不复杂,也不会丢失什么重要资料。
但是这个新的代码漏洞,我强烈建议大家不要去尝试,不然可能会导致手机资料丢失。
所幸的是,就目前来看苹果最新的 iOS15 系统上已经修复了这个问题,链接会出现弹窗提醒,并且强制无法链接。