在苹果 iOS 系统的使用过程中,用户们常常会遭遇一些令人困扰的系统缺陷,其中就包括某些特定代码能够导致设备直接崩溃的问题。最近,又有新的 iOS 代码漏洞被开发者们所发现。
经过实验验证,如果用户尝试连接到一个具有特殊命名方式的 WiFi 网络,那么他们的设备很可能会遭遇严重的系统故障,甚至会导致整个手机的网络系统完全崩溃。
具体来说,我们可以将自家路由器的 WiFi 名称设置为以下格式:%p%s%s%s%s%n
随后,当设备尝试加入这个 WiFi 网络时,它并不会直接显示这串看似随机的字符序列。在最初的几次连接尝试中,设备可能会表现出无法连接的状态,但如果用户坚持不懈地尝试多次,设备很快就会开始出现网络方面的异常。
根据实际测试的结果,我的 iOS15 设备在连接到该 WiFi 后会立即报告连接错误,并且经过多次尝试后,WiFi 功能会反复地在关闭和开启之间切换。
与此同时,对于运行 iOS13 或 iOS14 的设备来说,多次连接这种特殊命名的 WiFi 后,它们会直接陷入网络瘫痪的状态。这意味着 WiFi 功能将完全失效,用户甚至无法使用隔空投送功能,整个设备的网络连接都将受到影响。更严重的是,即使重启设备也无法解决这个问题。开发者们推测,这个漏洞可能是由于苹果系统在代码逻辑上存在缺陷所致。
在编程领域,% 语法是一种常见的格式化输出字符串的方式。在 C 语言中,%n 的作用是不打印任何内容,同时将到目前为止已经打印的字符数量存储在一个 int 类型的变量中。当 WiFi 名称被设置为包含这种代码时,系统可能会将未经过适当解析的 SSID 传递给负责字符串格式化的内部库,进而引发任意内存写入和缓冲区溢出的问题。
毫无疑问,这是一个相当严重的系统漏洞。如果有人出于恶作剧或其他不良目的,将公共 WiFi 的名称设置成这种特殊格式,那么其他不了解情况的用户在多次尝试连接后,可能会发现自己的苹果设备完全无法上网。
值得庆幸的是,这个问题可以通过在设置中执行网络重置的操作来得到解决,但是这对于普通用户来说可能并不容易想到。毕竟,即使是通过关机重启的方式,问题依然存在,设备仍然无法上网。
不仅如此,运行 iPadOS 系统的 iPad 设备也会受到这个问题的影响,因为它们与 iPhone 设备一样,都运行着相同的系统底层。