Уязвимость, приводящая к сбоям в работе службы
беспроводных соединений на iPhone,
позволяет запускать произвольный код при определенных условиях.
Не так все просто
Исследователи выявили
критически опасную уязвимость в службе беспроводных соединений смартфонов iPhone. Ее можно использовать
для запуска произвольного кода удаленно и без какого-либо взаимодействия с
пользователем.
Уязвимость нашли еще
месяц назад: в конце июня 2021 г. эксперт по безопасности Карл Шоу (Carl Schou) обнаружил, что если попытаться подключить iPhone к точке доступа с
определенными символами в названии идентификатора SSID, служба Wi-Fi на смартфоне перестает функционировать. Не
помогает ни перезагрузка устройства, ни смена SSID. Собственная точка доступа Шоу носила название «%p%s%s%s%s%n».
Некоторые другие вариации
приводили к непрерывному перезапуску службы Wi-Fi, но в любом случае, пользоваться соединениями Wi-Fi становилось невозможно. Восстановить работу
модуля можно было только при помощи сброса сетевых настроек на смартфоне. Однако
теперь выяснилось, что баг намного опаснее, чем предполагалось изначально.
Произвольный код и специальные символы
Эксперты компании ZecOps выяснили, что
уязвимость можно эксплуатировать без участия пользователя, а главное,
открывается возможность для запуска произвольного кода. Проблема в том, что
служба Wi-Fi рассматривает определенные
последовательности символов как форматирующие, а не обычные символы. В
частности, эксперты ZecOps воспользовались последовательностью %@, а это спецификатор формата для
вывода и форматирования объектов в Objective-C — программном языке, на котором написано ПО для iOS.
«Потенциальная
возможность для эксплуатирования возникает, если мы находим объект, выпущенный
в стек; в этом случае, мы можем подобрать метод распыления, чтобы
контролировать содержимое памяти, и затем использовать %@, чтобы этот объект
рассматривался системой как объект Objective-C, — написали исследователи. — Возникает типичная
уязвимость Use-After-Free (использование области памяти после ее
освобождения), что может позволить запустить произвольный код».
Пользователям
настоятельно рекомендуется переводить службу Wi-Fi в режим ручного подключения. Как утверждается в
публикации ZecOps, Apple
частично устранила уязвимость в обновлении 14.4. В версии 14.6, тем не менее,
специальные символы считываются как форматирующие, что вызывает сбой в работе Wi-Fi. Ожидается, что полное исправление поступит с версией
14.7.
«По сути дела, речь идет
о двойной уязвимости, — говорит Анастасия
Мельникова, эксперт по информационной безопасности компании SEC Consult
Services. — Помимо некорректного реагирования на определенные
последовательности символов, проблема состоит еще и в том, что служба Wi-Fi на
iPhone по умолчанию работает в режиме автоматического подключения к любой открытой
сети. Злоумышленникам остается только создать свою точку доступа со специальными
символами в названиями и дожидаться жертвы, не прилагая никаких активных усилий
к заманиванию».