Wi-Fi на iPhone может отключаться из-за определённых имён сетей

Новое исследование показало, что сети с символом процента в названии могут провоцировать баг, который вызывает отключение Wi-Fi на iPhone и других iOS-устройствах.

2 комментария

Странную особенность обнаружил исследователь безопасности Карл Скоу. Об этом он написал в своём Twitter.

Как он пояснил, если iPhone окажется в зоне действия сети с именем %secretclub%power, устройство не сможет использовать Wi-Fi или любые связанные с ним функции. Ошибка с отображением Wi-Fi на устройстве может не исчезнуть даже после сброса настроек сети.

Также Скоу обнаужил, что если iPhone подключен к сети с SSiD-именем % p% s% s% s% s % n, то это вызовет ошибку в сетевом стеке iOS, которая отключит Wi-Fi. В результате системные сетевые функции, такие как AirDrop, станут недоступными для использования.

Вероятное объяснение бага следующее. Синтаксис «% [символ]» обычно используется в языках программирования для форматирования переменных в выходной строке. В языке C спецификатор «% n» означает сохранение количества символов, записанных в строку формата, в переменную, переданную в функцию форматирования строки. Подсистема Wi-Fi, вероятно, передаёт имя сети Wi-Fi (SSID) без очистки в некоторую внутреннюю библиотеку. Та в свою очередь выполняет форматирование строки, что вызывает произвольную запись в память и переполнение буфера. Это приводит к повреждению памяти — таймер iOS завершает процесс, отключая Wi-Fi для пользователя.


Читать на dev.by