Аномальный параметр в анимированном стикере размером менее килобайта вызывает критический отказ в обслуживании приложения Telegram на всех платформах.
Для запуска сбоя в Telegram не требуется ни массивный файл, ни сложная последовательность манипуляций. По мессенджерам циркулирует миниатюрный стикер объёмом всего 269 байт, который способен вызвать принудительное закрытие приложения при попытке отобразить содержащее его сообщение. У некоторых пользователей мессенджер перестаёт работать при входе в проблемный чат, при этом сбой нередко повторяется даже после перезагрузки приложения.
Коренная причина скрывается в структуре анимированного изображения. Динамические стикеры в Telegram применяют формат TGS, основанный на стандарте Lottie JSON. Этот формат кодирует векторную графику и настройки анимации, которые клиент преобразует в готовое изображение прямо на пользовательском устройстве. В злонамеренном файле для простой звезды установлено экстремальное значение около 1038 точек отрисовки. Когда рендерер обрабатывает такой аномальный параметр, он пытается построить геометрическую фигуру с практически недостижимым числом элементов, что приводит к резкому скачку потребления ресурсов и краху приложения.
Интерактивное взаимодействие с проблемным стикером не является необходимым условием. По данным специалистов, проведших анализ инцидента, отказ может произойти при входе в диалог, содержащий подготовленную анимацию. Поскольку сообщение остаётся в архиве переписки, каждое повторное открытие проблемного диалога может повторно инициировать обработку вредоносного файла. Исследователи не выявили признаков несанкционированного доступа к переписке, учётным данным или ключам шифрования. По механизму воздействия уязвимость относится к локальной атаке на отказ в обслуживании (DoS), когда специально подготовленные данные делают функциональность приложения или отдельный диалог временно недоступными.
Серьёзность проблемы варьируется в зависимости от типа и версии используемого клиента Telegram. Команда разработчиков Telegram Desktop уже представила обновление версии 7.2.7, в котором явно указано устранение отказов при обработке ошибочных Lottie-композиций. Пользователи настольного приложения должны установить актуальное обновление. Для пользователей iOS в начале недели поступила информация о подготовленном исправлении, которое находилось в процессе внедрения в общую сборку.
Разработчики активно совершенствуют валидацию анимированного содержимого. В исходном коде Telegram Desktop был предложен отдельный запрос на внедрение дополнительных защитных проверок из библиотеки tlottie; инициатор этого предложения специально выделил проблему DoS-сбоев при парсинге недоверенных Lottie-композиций. Сама библиотека реализована на языке Rust и была спроектирована с учётом безопасной обработки Lottie JSON как потенциально враждебного входного потока.
Аналогичные уязвимости причиняли неприятности Telegram в прошлые годы. В 2022 году поступали сообщения об отказе, вызванном специально созданными анимированными стикерами чрезвычайно высокого разрешения, которые заставляли приложение резервировать сотни мегабайт оперативной памяти для отрисовки одного кадра. В текущем случае используется иной параметр, однако суть остаётся идентичной: компактный файл после распаковки и обработки графическим ускорителем может потребовать непропорционально большое количество системных ресурсов.
До выпуска обновлений рекомендуется избегать повторного входа в диалог, после открытия которого наблюдается принудительное закрытие приложения. Если доступ к проблемному чату сохраняется через обновлённую или устойчивую к уязвимости версию клиента, вредоносное сообщение можно удалить из истории переписки. Для пользователей Telegram Desktop главным способом защиты остаётся обновление приложения до версии 7.2.7 или позднее.
