苹果|iPhone必崩溃bug曝光!这个Wi-Fi水太深:附解决方法
iPhone又出现漏洞了,这个漏洞能让你手机一连WiFi就崩溃 。
如果有人把WiFi名称(SSID)设置成一串特殊字符,那么你要小心了,因为你一旦尝试去连接这个WiFi,你的iPhone就会“中招” 。
就像下面这样,从此你的iPhone再也连不上WiFi了,即使手动打开也会自动关闭:
文章图片
而且就算重启iPhone也不管用,必须还原手机的网络设置才能让WiFi功能恢复正常 。
仅iPhone受影响
发现这一漏洞的是一位叫做Carl Schou的安全工程师,他把自己家的WiFi设置成了以下名称:%p%s%s%s%s%n
文章图片
(温馨提示:千万不要自己手贱尝试,也不要去危害其他iPhone用户 。)
之后他就发现iPhone的WiFi功能彻底崩溃了 。
每次他尝试再次开启WiFi时,系统都会迅速关闭,即便他重新启动设备,或把家里的WiFi改成一个正常的名称也不行 。
Carl首先是在他iOS版本14.4.2的iPhone XS上测试发现的,之后他又在最新的14.6系统上进行了同样的测试,漏洞依旧存在 。
Carl首先在Twitter上反馈了这一问题,其他多位网友看到他的描述后也复现了该漏洞 。
文章图片
而且据这位网友反馈,问题不仅是WiFi不能用,连AirDrop也打不开了 。
文章图片
当然,这个问题也不是完全不能修复,具体的修复方法我们后面再提 。
如果你是Android用户,则完全不必担心,因为有人尝试用Android手机连接同样名称的WiFi,问题没有出现 。
文章图片
另外,量子位亲测,该WiFi名称对Mac无影响 。看来这个漏洞应该是iPhone独有的 。
虽然WiFi也不是不能靠重置解决,但一些网友认为,这个“可怕的”漏洞应该引起高度的重视 。
因为像这样的漏洞可能会被黑客利用,比如在公共场合设置在流氓WiFi,就可以让附近所有iPhone崩溃 。
而且这很可能是一个特权提升漏洞,会导致溢出错误,从而破坏了plist 。(plist是苹果用来储存用户设置的文件) 。
文章图片
一串字符为何让iPhone崩溃
看到Schou推文的其他安全工程师认为,是iPhone对WiFi名称的解析问题导致了这个错误 。
问题就处在名称里的“%”符号上 。
如果你学会C、C++语言,那么应该对这个符号有所了解:%叫做“格式化字符串”(format string),用来处理特殊的变量名或命令 。
比如“%3d”就是将变量以3位整型数方式输出 。
再回到“%p%s%s%s%s%n”这串特殊字符,%p代表输出指针,%s代表输出字符串,%n的含义稍微复杂一些,代表输出%n之前的字符长度 。
比如下面这串代码:
printf(“geeks for %ngeeks”, &c);输出结果并不显示%n,只是
geeks for geeks但是这行代码会将%n之前的字符数统计下来,存放在变量c中 。
文章图片
如果我们再加一句printf(“%d”, c);就会发现输出结果为10 。(空格也算一个字符)
iPhone会将未经过滤的Wi-Fi名称(SSID)传递给一些执行格式化字符串的内部库,这会导致任意的内存写入和缓冲区溢出,从而破坏内存数据 。而iOS看门狗会终止该进程,导致Wi-Fi禁用 。
所以iPhone没有把“%p%s%s%s%s%n”理解成普通文字,而是当成了特殊字符串来处理 。iPhone的错误日志也记录下了这一事件 。
文章图片
至于为何要把WiFi改成这个奇怪的名字,Carl说,他的所有设备都以格式化字符串命名,以此来发现那些有问题的设备 。
其实,这也不是iPhone第一次遭遇特殊字符串的攻击 。
之前最出名的莫过于2018年的“死亡短信”,只要给iPhone发送一段有特殊泰卢固语字符的短信,用户就再也无法打开短信App,因为只要一点击,iPhone就会自动重启 。
推荐阅读
- iPhone|曝苹果iPhone 14放弃1200万像素摄像头!原因揭秘
- 苹果|解决信号差!苹果最重要芯片曝光:iPhone 15要首发自研基带
- 苹果|iPhone 14细节曝光:苹果解决最大短板 台积电造全新5G射频芯片
- iPhone手机|河南研一男生寒假勤工俭学 送室友一人一部iPhone 13
- 真我|realme全球首发150W闪充!老外喊话苹果谷歌
- Intel|Intel 15代酷睿核显爆发:台积电3nm+320单元、目标直指苹果
- Intel|Intel 15代酷睿核显爆发:台积电3nm+320单元、重夺苹果芳心
- 安卓|不用iPhone!苹果员工集体要用安卓手机:原因是为防公司窥探
- iPhone|困扰苹果多年!iPhone 13拍照鬼影问题OPPO Find X5给解决了
- Galaxy|奢华版三星S22 Ultra来了:售价近5万元 一台顶7台iPhone 13 Pro Max