(54 минуты назад), Редакция Рунет | 👁 416

Telegram исправил мультиплатформенную уязвимость в HTML-виджетах

Telegram исправил уязвимость в HTML-виджетах, через которую скрипт из сообщения мог выполнить свой код на Android. Ошибка была не в самом мессенджере, а в движке QuickJS. Об этом сообщает «Код Дурова».

QuickJS — компактный движок JavaScript, на котором работают скрипты интерактивных виджетов (HTML bubbles). Telegram использует собственный форк проекта QuickJS-ng. В журнале изменений песочницы виджетов на GitHub команда мессенджера пишет, что о проблеме сообщили применительно к Telegram для Android 13.2.1: скрипт виджета добивался выполнения машинного кода.

Ошибку описал разработчик Андреас Рёсдал. 9 ноября он опубликовал в репозитории QuickJS-ng аудит безопасности всего движка, который провёл с помощью модели Claude Fable 5.1. В отчёте 27 находок, уязвимость с циклом for (await using …) в нём под третьим номером с высоким уровнем опасности.

Автор оговорился, что проверял код чтением, без запуска эксплойтов, и выложил находки открыто, потому что повторить такой анализ теперь может любой. Суть ошибки в том, что парсер QuickJS принимал конструкцию await using в заголовке цикла даже внутри обычных, не асинхронных функций. Движок выходил из такой функции по пути для асинхронного кода и не закрывал ссылки на её локальные переменные. Вложенные функции после возврата продолжали обращаться к уже освобождённому участку стека — это ошибка класса use-after-return. Через неё скрипт выходил за пределы песочницы.

По данным Telegram, ошибка затрагивала все платформы, где собирается форк движка, а добраться до неё можно было из обычного скрипта виджета. Уязвимый код попал в основную ветку QuickJS-ng 16 мая вместе с поддержкой явного управления ресурсами.

Исправление внесли 10 ноября. Теперь парсер отвечает на такую конструкцию синтаксической ошибкой, а интерпретатор выдаёт ошибку вместо того, чтобы приостанавливать обычную функцию. В тот же день вышла версия Telegram для Android 13.2.2. В основном репозитории QuickJS-ng обсуждение аудита на момент публикации остаётся открытым.

HTML-виджеты Telegram открыл ботам 9 ноября, и уже через два дня исследователи V12 показали выполнение кода на Android через такое сообщение, как ранее рассказывал «Код.ру».

Подписывайтесь на наш Telegram-канал, чтобы быть в курсе всех новостей и событий Рунета.

Комментарии 0
Зарегистрируйтесь или , чтобы оставлять комментарии.
БПЛА атаковали склад Ozon на юге России