Архив Telegram с отложенной угрозой

В HTML-экспорте Telegram Desktop обнаружилась уязвимость: подготовленный ботом код мог запуститься при открытии архива в браузере с включённым JavaScript. В самом Telegram сообщение выглядело обычно и не причиняло вреда. Опасность возникала позднее, иногда спустя месяцы или годы, когда пользователь просматривал сохранённую переписку. Telegram исправил генератор экспорта в июле 2026 года, но обновление приложения не обезвреживает уже созданные HTML-файлы.
Архив Telegram с отложенной угрозой
Изображение носит иллюстративный характер

Telegram Desktop работает на Windows, macOS и Linux и позволяет выгружать отдельный чат либо весь аккаунт в виде страниц для браузера. Текст сообщений, имена отправителей и прочие поля приложение экранировало перед вставкой в HTML, а подписи кнопок встроенной клавиатуры — нет. Бот мог поместить туда тег <script> и дополнить его невидимыми символами, чтобы кнопка казалась пустой. В Telegram код оставался бездействующим, зато в экспортированной странице выполнялся сразу после открытия, без дополнительного нажатия.
Для доставки такого сообщения боту не требовалось состоять в атакуемой группе. Сообщения, содержащие только кнопки с веб-ссылками, сохраняли их при пересылке, поэтому любой участник мог перенести заготовку в нужный чат. Она могла затеряться в истории и попасть в архив задолго после удаления исходного бота. Эксплуатация требовала совпадения трёх условий: экспорт создала уязвимая версия Telegram Desktop, вредоносное сообщение вошло в выгрузку, а HTML открыли при работающем JavaScript.
Скрипт получал доступ ко всем сообщениям внутри конкретного HTML-файла, именам отправителей, временным меткам, названию и типу чата, числу участников и локальному пути к архиву. Эти сведения можно было отправить на подконтрольный злоумышленнику сервер. Код также позволял переписать видимую страницу: заменить даты, авторов, сообщения или весь архив. В демонстрации исследователей вместо переписки появлялась поддельная форма «проверки» Telegram. Серверная история и файл на диске при этом не менялись.
Длинные выгрузки Telegram делит на страницы по 1000 сообщений, поэтому заражённый файл раскрывал только собственное содержимое, а не весь чат или аккаунт. При экспорте отдельного чата сохраняются сообщения всех участников. Полная выгрузка аккаунта по умолчанию включает в группах и каналах лишь сообщения владельца, зато сохраняет всю переписку в личных диалогах и чатах с ботами. Из-за этого присутствие пересланной заготовки зависело от выбранного способа экспорта.
Исследование касалось исключительно HTML-экспорта Telegram Desktop. Формат JSON и экспорт в других приложениях Telegram не проверялись. Denis Rostilov и Aleksander Rostilov тестировали уязвимость на собственных аккаунтах и в тестовых группах; сведений о нападениях на реальных пользователей их публикация не содержала. Исследователи оценили проблему в 8,2 балла из 10 по CVSS 3.1. На 14 сентября 2026 года Telegram и U.S. National Vulnerability Database (NVD) не присвоили ей оценку, идентификатора CVE также не существовало.
Уязвимая строка появилась в Telegram Desktop 4.15.1, выпущенном в марте 2024 года, и сохранялась до версии 6.9.3 включительно — примерно два года и четыре месяца. John Preston подготовил исправление 30 июня 2026 года в коммите 8457d13a: подписи кнопок встроенной клавиатуры начали экранироваться. Telegram подтвердил проблему 1 июля. Исправление вошло в 6.9.4 beta от 3 июля и стабильную 7.0.1 от 14 июля; последующие версии также защищены.
Предполагаемая дата обнаружения — 1 июня 2026 года: отчёт отправили через два дня. 3 июня Denis Rostilov и Aleksander Rostilov сообщили о находке Telegram, 30 июня John Preston написал исправление, а 1 июля компания подтвердила ошибку и предложила 500 долларов. 3 июля вышла исправленная бета-версия, 14 июля — стабильная. 11 сентября исследователи отметили отсутствие CVE, 12 сентября ExPatch опубликовал разбор, а 14 сентября The Hacker News проверил открытые базы и также не нашёл CVE или рекомендаций Telegram владельцам старых архивов.
Исследователи отказались от вознаграждения в 500 долларов и попросили перечислить деньги на благотворительность. Они запрашивали согласованную дату публикации, соглашались молчать до выхода патча и указывали, что соглашение о неразглашении отчёт не ограничивало. В письме от 1 июля Telegram Support отказалась одобрить публичное раскрытие даже исправленной проблемы, сославшись на риск похожих атак и финансового ущерба пользователям. Авторы восприняли ответ как возражение против публикации после устранения ошибки. При этом правила программы Telegram запрещают раскрывать уязвимости до исправления, но ничего не говорят о публикации после него.
Исправление не упоминалось в примечаниях к выпускам 6.9.4 и 7.0.1, журнале изменений Telegram Desktop, объявлении Telegram от 14 июля и GitHub Security Advisories репозитория Telegram Desktop. На 14 сентября компания не выпустила инструкции для владельцев прежних HTML-архивов. Поэтому безопасная версия программы решает проблему лишь для новых выгрузок, оставляя старые файлы потенциально опасными.
Пользователям следует установить Telegram Desktop 7.0.1 или новее либо 6.9.4 и выше в бета-канале, после чего заново экспортировать нужные чаты. Старые HTML-архивы, особенно из крупных групп, разумно считать недоверенными. Если пересоздать их нельзя, открывать файлы стоит только с отключённым JavaScript. До обновления Telegram Desktop новые HTML-выгрузки создавать не следует: установка патча предотвращает появление уязвимого кода в будущих архивах, но не очищает уже сохранённые страницы.


Новое на сайте

Ссылка