Спецпроекты

ПО Безопасность

Смартфон можно захватить, отправив GIF-файл в WhatsApp

Уязвимость в инструментах обработки GIF-изображений позволяет запускать удаленный код на смартфонах под Android 8.1-9.0 и «ронять» WhatsApp на более ранних версиях ОС. Другие платформы проблема не затрагивает.

Обновитесь, пожалуйста

Facebook настоятельно рекомендует всем пользователям WhatsApp срочно обновить приложение под Android: только что стало известно о критической уязвимости, чреватой удаленным запуском произвольного кода на мобильном устройстве.

Дыра, которую обнаружил независимый эксперт по информационной безопасности под псевдонимом Awakened, относится к классу double-free или «двойное освобождение памяти». Это ошибка, при которой программа дважды обращается с вызовом free() (команда на освобождение) к одной и той же области памяти, что приводит к нарушению ее целостности. Вследствие этого приложение либо «падает», либо при определенных условиях у потенциального злоумышленника появляется возможность записывать посторонние данные в память. В конечном счете это может приводить к захвату контроля над устройством.

Awakened уведомил Facebook о своем открытии еще в сентябре 2019 г., и WhatsApp был поспешно обновлен до версии 2.19.244.

whatsapp600.jpg
Критический баг в WhatsApp позволяет захватывать смартфоны с помощью GIF-анимации

Разработчики WhatsApp убеждены, что реальных случаев эксплуатации уязвимости пока не было.

GIF номер ноль

Злоумышленнику потребуется отправить пользователю специально созданный GIF-файл (от англ. Graphics Interchange Format — формат обмена изображениями), который некорректно обрабатывается функциями, отвечающими в WhatsApp под Android за предварительный просмотр изображений, видео и GIF-анимации.

Как пояснил сам эксперт, GIF-файл может хранить несколько закодированных кадров и для их хранения используется буфер под наименованием rasterBits. Если все кадры имеют одинаковый размер, rasterBits используется вторично без повторного выделения области памяти. Однако если, например, GIF-файл содержит три кадра, первый из которых имеет общее разрешение 100 пикселей, а второй и третий — 0, то память перераспределяется таким образом, что одна и та же область освобождается дважды. Образуется уязвимость двойного освобождения.

Проблема затрагивает версии Android 8.1 и 9.0, но ее эксплуатация, похоже, не сработает на устройствах с версией операционной системы младше 8.0. Точнее, уязвимость присутствует и там, но приложение просто «падает».

«Далеко не первый и определенно не последний случай, когда в WhatsApp находят критические уязвимости, — говорит Алексей Водясов, эксперт по информационной безопасности компании SEC Consult Services. — Отрадно лишь, что баг был оперативно ликвидирован разработчиком. Стоит, однако, отметить, что пользователи, которые будут затягивать с установкой обновления, сейчас рискуют больше, чем до публикации сведений об этой уязвимости».

Роман Георгиев

Короткая ссылка