Telegram закрыл уязвимость в HTML-виджетах, позволявшую выполнять код на Android

Изображение: OpenAI
Telegram исправил уязвимость в новых HTML-виджетах, которая позволяла выполнять произвольный код на Android. Исправление вышло 10 ноября в Telegram для Android 13.2.2 (7303).
Telegram разрешил ботам отправлять HTML-виджеты 9 ноября. Они работают прямо в переписке, без открытия отдельного приложения.
Как пишет Хабр, уже 11 ноября исследователи V12 опубликовали демонстрацию атаки. На видео пользователь запускал бота и получал сообщение с обратным отсчётом, после чего на смартфоне самостоятельно открывался «Калькулятор».
Ошибка в JavaScript-движке QuickJS позволяла скрипту выйти за пределы изолированной среды исполнения. Согласно журналу изменений песочницы Telegram на GitHub, парсер QuickJS принимал конструкцию await using в заголовке цикла внутри обычной, неасинхронной функции. Из-за этого вложенные функции могли обращаться к уже освобождённому участку стека после завершения внешней функции.
Та же уязвимость вошла в аудит QuickJS-ng — версии движка, которую использует Telegram. Аудит провели с помощью Claude от Anthropic и опубликовали 9 ноября. Всего в отчёте было 27 находок; ошибке с await using присвоили высокий уровень опасности.
По данным Telegram, проблема затрагивала все платформы, для которых собирается используемый компанией форк движка. При этом сведения о конкретных уязвимых версиях клиентов для других платформ пока не подтверждены.
Исследователи ещё не опубликовали полное техническое описание эксплуатации. Подтверждений атак без взаимодействия пользователя и массовой эксплуатации также нет.



