EN

HTML-виджеты Telegram получили RCE за неделю: хронология фиксов и ответ Дурова

Опубликовано: 2026-11-14 · Автор: AI Release · @ai_release1 · Tech · Релиз / Официально
HTML-виджеты Telegram получили RCE за неделю: хронология фиксов и ответ Дурова

⚡ Главное за 5 секунд

🔍 Что случилось

5 ноября в описании Telegram Desktop 7.4.0 появилась ровно одна строка — «HTML widgets in bots». Через четыре дня, 9 ноября, виджеты открыли всем ботам в Bot API 10.4, и в тот же день Андреас Рёсдал выложил аудит движка QuickJS-ng на 27 находок. К 13 ноября Telegram выпустил уже 7.4.3.

Механика такая: виджет — это сообщение с HTML и JavaScript, до 4 КБ. Скрипт крутится в песочнице без сети и без ввода с клавиатуры, но под ним лежит QuickJS, движок на C, и ошибка работы с памятью выносит скрипт за пределы песочницы. Первый баг — use-after-free в replace: регулярка пересобиралась прямо посреди операции, старый байткод освобождали, а движок продолжал читать его по прежнему адресу. Второй — use-after-return: await using внутри обычной функции, движок принимал код, который должен был отклонить, функция завершалась, а замыкания лезли в её бывшую память. В журнале исправлений запись о RCE стоит 6 ноября — за три дня до открытия виджетов всем ботам.

11 ноября, на следующий день после статьи автора разбора на Хабре, V12 выложила ролик: виджет запускает калькулятор на Android. Дальше Павел Дуров ответил постом — «Проблемы не существует. Никого нельзя было взломать одним лишь получением сообщения», а закрыл тему предложением «Попробуйте взломать мой аккаунт: t.me/monk».

🧠 Наш разбор

Совпадение по датам выглядит некрасиво. Функцию выкатили всем ботам 9 ноября, хотя запись про RCE в журнале движка появилась тремя днями раньше. Наша оценка: это не злой умысел, а нормальная для быстро катящихся фич гонка — сначала доступ, потом закрытие дыр, и посторонние исследователи успевают быстрее. Но именно поэтому фраза «уязвимости нет, и мы её исправили» в одном посте и звучит как мем.

Что это меняет по сути: у мессенджера появился свой рантайм для чужого кода. Раньше риск от сообщения сводился к фишингу, теперь — к запуску кода на JS-движке. Требование «сначала нажми Старт у бота» сужает сценарий, но человек идёт в чат не за этим: под предлогом верификации для входа «Старт» нажимают не глядя. Это рассуждение, а не свидетельство конкретной атаки.

Выигрывают, похоже, обе стороны сразу. Аудит Рёсдала писали с помощью Claude Fable 5.1, ошибку памяти 11 ноября нашла Mythos 5.2, а Коннор Ши подтвердил результат. Нейросети ускорили поиск багов в чужом C-коде — и заодно ускорили гонку для тех, кто катит этот код в прод. Кто проигрывает — зависит от того, сколько таких находок ещё лежит в отчёте без PoC.

⚠️ Чего мы не знаем

Все 27 находок Рёсдал проверил по коду и не пытался воспроизвести — это его собственная оговорка. Неизвестно, какой именно баг использовала V12 и был ли вообще реальный инцидент помимо демонстрации калькулятора. Telegram — заинтересованная сторона, и его «полностью закрыто на сервере» никем в поводе не подтверждено. Список исправлений в журналах тоже не гарантирует, что он полный.

💬 О чём спорить

Обязан ли мессенджер с миллиардом пользователей держать новую исполняемую поверхность за флагом дольше одной недели — или скорость раскатки тут важнее?

Считать ли требование «сам запусти бота» защитой или перекладыванием ответственности на человека, который просто читает сообщения?

Стоит ли верить аудитам, где нейросеть искала баги, а человек проверял их по коду без воспроизведения?

Прогноз: в течение квартала выйдет минимум один независимый публичный разбор или PoC по QuickJS-ng в контексте виджетов — при условии, что исследователи не упрутся в отсутствие тестового стенда.

Дисклеймер: хронология и детали уязвимостей взяты из одного авторского разбора; официально Telegram подтвердил только исправление на сервере.

Источник: Хабр

🤖 Кратко для ИИ
  • Дата: 2026-11-14
  • Источник: habr.com
  • Теги: Telegram, безопасность, QuickJS, RCE, HTML-виджеты, информационная_безопасность, AI, кибербезопасность
  • Ключевые факты:
    • HTML-виджеты открыли всем ботам 9 ноября в Bot API 10.4 — и за первую неделю движок QuickJS-ng дважды правили из-за выполнения кода.
    • Фиксы шли волнами: движок v0.6.1 (6 ноября) и v0.6.4 (10 ноября), клиент Telegram Desktop 7.4.2 и 7.4.3 (13 ноября, ночь по Москве).
    • Атака требовала, чтобы человек сам запустил бота; Telegram называет сценарий закрытым на сервере, но независимого подтверждения этому в поводе нет.
    • 5 ноября в описании Telegram Desktop 7.4.0 появилась ровно одна строка — «HTML widgets in bots».
    • Через четыре дня, 9 ноября, виджеты открыли всем ботам в Bot API 10.4, и в тот же день Андреас Рёсдал выложил аудит движка QuickJS-ng на 27 находок .
    • К 13 ноября Telegram выпустил уже 7.4.3.
    • Механика такая: виджет — это сообщение с HTML и JavaScript, до 4 КБ.
    • Скрипт крутится в песочнице без сети и без ввода с клавиатуры, но под ним лежит QuickJS, движок на C, и ошибка работы с памятью выносит скрипт за пределы песочницы.
#Telegram#безопасность#QuickJS#RCE#HTML-виджеты#информационная_безопасность#AI#кибербезопасность
← ПредыдущаяMicrosoft Classroom: Copilot для учителей и оценки — превью в 2027

Источник: habr.com · пост в Telegram