![]() |
https://forum.antichat.xyz/attachmen...226e2d200a.png
Март 2026 года. Исследователь публикует идентификатор ZDI-CAN-30207, заявляя о критической zero-click уязвимости в Telegram с оценкой CVSS 9.8 из 10. Telegram в ответ: угрозы нет, исследователь ошибается. На заборе тоже написано. Публичное раскрытие деталей отложено до июля, миллионы пользователей сидят в информационном вакууме, а исследователи безопасности - перед закрытой дверью. Эта статья - карта всего, что известно о ZDI-CAN-30207, и пошаговое руководство по поиску подобных уязвимостей в мессенджерах. Для тех, кто хочет найти следующий zero-day сам. Карта темы: от конкретного бага до системной методологии
Что подтверждено 26 марта 2026 года исследователь безопасности отправил в Zero Day Initiative отчёт об уязвимости нулевого дня в мессенджере Telegram. ZDI присвоила идентификатор ZDI-CAN-30207 - отчёт принят, уязвимость прошла первичную верификацию. Оценка критичности - 9.8 балла по шкале CVSS 3.1, категория Critical, выше некуда. Официального CVE-идентификатора и подтверждённого NVD score на момент публикации нет: CVSS становится официальным после присвоения CVE и анализа NVD/CNA, а не на этапе ZDI-CAN. По информации SecurityAffairs и Dark Reading, уязвимость затрагивает Telegram на Android и Linux. Заявлена возможность полного захвата устройства. Характер связан с обработкой медиаконтента - предположительно, анимированных стикеров. Публичное раскрытие технических деталей (disclosure) назначено на 24 июля 2026 года, если вендор не устранит проблему раньше. Позиция Telegram Команда Telegram публично оспорила выводы исследователя. На Хабре заявили: «исследователь ошибочно утверждает, что для атаки можно использовать стикер с вредоносным кодом». Telegram указал на серверную фильтрацию: все анимированные стикеры проходят серверную обработку и конвертацию, что теоретически не даёт вредоносному контенту добраться до клиента. Спорный момент. Серверная фильтрация действительно может нейтрализовать ряд атак на парсеры, но:
Что остаётся неизвестным Не опубликованы: CVE-идентификатор (ZDI-CAN - внутренний номер ZDI, не CVE), PoC-эксплойт, технический root cause analysis, точный компонент уязвимого кода. Всё, что идёт ниже в разделах методологии - системный подход к поиску аналогичных уязвимостей, а не реконструкция конкретного эксплойта ZDI-CAN-30207. Поверхность атаки мессенджеров: 7 зон, где живут zero-day баги Современный мессенджер - это браузер, медиаплеер, VoIP-клиент и файловый менеджер, запиханные в один APK или бинарник. «Просто чат» - это лет пятнадцать назад закончилось. Каждая функция расширяет поверхность атаки. Полная карта attack surface типичного мессенджера: Зона атакиКомпонентыТипичные классы уязвимостейПример из историиМедиапарсерыlibwebp, ffmpeg, Lottie, собственные кодекиHeap overflow, OOB read/write, integer overflowCVE-2023-4863 (libwebp)Протокол доставкиMTProto (Telegram), Signal Protocol, кастомныеCrypto-атаки, replay, downgradeПрошлые проблемы MTProto 1.0Превью ссылокHTML-рендерер, парсер OG-теговSSRF, XSS, утечка IPWhatsApp link preview leaksЗвонки (VoIP)WebRTC, кастомные RTP-стекиBuffer overflow, RCE через RTPPegasus через WhatsApp VoIPФайловый обменОбработчики .apk, .exe, .py, архивовPath traversal, symlink attacksTelegram EvilVideo (2024)УведомленияPush-сервисы, фоновая обработка сообщенийZero-click триггерыNSO ForcedEntry (iMessage)Авторизация/сессииSMS-коды, QR-логин, сессионные токеныSession hijacking, MITMSIM-swap атаки на Telegram Для исследователя первый шаг - определить, какие зоны актуальны для целевого мессенджера. Telegram Desktop на Linux - приоритетны медиапарсеры, обработка файлов и протокольный уровень. Мобильный клиент - добавляются VoIP и push-уведомления. Начинаете исследование мессенджера - составьте таблицу зон по этой модели. Для каждой зоны определите: какие библиотеки используются (вытаскивается через анализ зависимостей бинарника), какой код написан in-house (чаще содержит баги), что проходит серверную обработку (сложнее эксплуатировать), что обрабатывается только на клиенте (проще). Медиапарсеры: почему обработка стикеров, картинок и видео - золотое дно для RCE Исторически, большинство критических zero-day уязвимостей в мессенджерах приходится на медиапарсеры. Три причины - и все железобетонные. Сложность форматов. Контейнеры и кодеки (WebP, Lottie/TGS, MP4, WebM, HEIC) - тысячи строк парсинга бинарных структур. Каждое поле с длиной, каждый offset - потенциальный integer overflow. Библиотека libwebp, которую тянут за собой практически все мессенджеры, в 2023 году получила CVE-2023-4863 (CWE-787: Out-of-bounds Write, CVSS 8.8 HIGH) - heap buffer overflow в Huffman-декодере WebP. По NVD, вектор атаки требует взаимодействия пользователя (UI:R - открытие crafted HTML-страницы), но в мессенджерах WebP-изображения рендерятся автоматически при получении. Барьер фактически исчезает. Официально затронутые продукты по NVD - Google Chrome, Fedora, Debian; Signal, Telegram и другие мессенджеры зацепило опосредованно, через зависимость от libwebp. Zero-click потенциал. Мессенджер обрабатывает стикер или изображение автоматически - показать превью, создать миниатюру, декодировать анимацию. Жертве не нужно кликать. Сообщение пришло - парсер сработал - уязвимость проэксплуатирована. Именно поэтому баги в медиапарсерах регулярно всплывают в атаках уровня nation-state (Pegasus, Predator). Фрагментация реализаций. Telegram использует собственные обёртки над стандартными библиотеками, собственный формат TGS (на базе Lottie), собственную логику конвертации. Каждая такая «обёртка» - дополнительный слой кода, где может сидеть ошибка, даже если базовая библиотека чиста. Формат TGS: что внутри telegram-стикера Анимированные стикеры Telegram - формат TGS, gzip-сжатый JSON, совместимый с Bodymovin/Lottie. Клиент распаковывает архив, парсит JSON, рендерит векторную анимацию. Цепочка: Код: Код:
Получение сообщения → Скачивание .tgs → gunzip → JSON parse → Lottie render → ОтображениеСерверная vs. клиентская обработка Telegram утверждает, что стикеры проходят серверную фильтрацию и конвертацию. Архитектурно это грамотно - если сервер пересоздаёт файл, вредоносные данные теоретически удаляются. Но серверная обработка - не панацея:
Zero-click vs. one-click: почему разница критична для оценки CVSS 9.8 «Zero-click» - жертве не нужно совершать никаких действий. Ни кликать по файлу, ни открывать сообщение, ни даже разблокировать устройство. Сообщение пришло, мессенджер его обработал в фоне - всё, атака состоялась. В случае ZDI-CAN-30207 характер взаимодействия с жертвой - один из ключевых открытых вопросов. Dark Reading описывает уязвимость как «no-click». Оценка CVSS 9.8 согласуется с zero-click RCE сценарием - это потолок. Сравнение: ХарактеристикаZero-clickOne-clickТребует установкиДействие жертвыНикакихОткрыть файл/ссылкуСкачать и запуститьТипичный CVSS9.0-10.07.0-9.05.0-7.0Стоимость на рынке 0day$500K - $2.5M+$100K - $500K$10K - $100KПрименениеNation-state, целевые атакиФишинг, APTМассовые кампанииСложность разработкиМаксимальнаяВыс окаяСредняя Из предыдущих случаев zero-click в мессенджерах - атака ForcedEntry (NSO Group / Pegasus) через iMessage: вредоносный PDF мимикрировал под GIF и эксплуатировал JBIG2-парсер. Telegram в 2024 году столкнулся с эксплойтом EvilVideo - маскировка APK под видео на Android - но это one-click, жертва должна была открыть «видео». При поиске уязвимостей оцените: какие данные обрабатываются до любого взаимодействия пользователя? Push-уведомления, превью контента, автозагрузка миниатюр - всё это потенциальные zero-click поверхности. Чем раньше в pipeline обработки сообщения происходит парсинг, тем выше шансы на zero-click вектор. Реверс-инжиниринг Telegram Desktop: от бинарника к пониманию парсеров Telegram Desktop - open-source проект, но реальный продуктивный реверс начинается с бинарника, а не с исходников на GitHub. Почему: компилятор оптимизирует код, линковщик включает конкретные версии библиотек, а в релизных билдах вырезаны assert-ы и debug-проверки. Именно скомпилированный код крутится у пользователей - его и нужно препарировать. Подготовка окружения Для анализа Telegram Desktop под Linux: Bash: Код:
# Стягиваем бинарник из официального дистрибутиваКод:
lddКод:
libwebp.so.7Поиск функций обработки медиа В Ghidra или IDA Pro цель первого этапа - найти точки входа парсеров:
Для Linux-версии - GDB или Frida для трассировки: Bash: Код:
# Перехват вызовов WebPDecode при получении стикераНачните реверс с поверхностного анализа зависимостей ( Код:
lddКод:
dumpbinФаззинг медиаформатов мессенджеров: от harness до первого крэша Фаззинг - самый продуктивный метод поиска уязвимостей в парсерах. Идея примитивная: генерируем миллионы мутированных входных файлов и скармливаем их парсеру, отслеживая крэши. На практике всё упирается в качество harness-а и corpus-а. Плохой harness - месяц впустую. Хороший - первые крэши за часы. Архитектура фаззинг-процесса для Telegram Код: Код:
Corpus (валидные .tgs/.webp) → Мутатор (AFL++/libFuzzer) → Harness (изолированный парсер) → Sanitizers (ASAN/MSAN) → Crash triageCorpus - набор валидных файлов, которые фаззер будет мутировать. Для Telegram-стикеров: Bash: Код:
# Скачиваем стикерпаки через Telegram APIHarness - минимальная программа, которая вызывает целевой парсер. Для Lottie-рендерера Telegram (rlottie): C++: Код:
// harness_rlottie.cpp - пример для демонстрации концепцииBash: Код:
clang++ -g -O1 -fsanitizeBash: Код:
# Запуск AFL++ с corpus-омНе каждый крэш - эксплуатабельная уязвимость. Сортировка:
Процесс Zero Day Initiative: как устроен путь от находки до публичного advisory ZDI-CAN-30207 - идентификатор формата ZDI-CAN, «candidate». Внутренний номер Zero Day Initiative, присваиваемый на этапе приёма отчёта. Понимание процесса ZDI критически важно, если планируете монетизировать найденные уязвимости. Этапы процесса ZDI
Ситуация «вендор говорит - уязвимости нет, ZDI - есть» не уникальна. Причины расхождений:
Нашли уязвимость в мессенджере - ZDI, HackerOne, Bugcrowd являются легитимными каналами disclosure. ZDI платит за эксклюзивность и берёт на себя коммуникацию с вендором. Для начинающих: качество PoC важнее красоты описания. Работающий эксплойт, стабильно воспроизводящийся на актуальной версии - основа принятия отчёта. Баг-баунти мессенджеров: где искать, сколько платят, какие подводные камни Не все мессенджеры одинаково открыты для исследователей. Зоопарк программ баг-баунти - от щедрых до несуществующих. Текущее состояние программ МессенджерПрограммаПлатфо рмаВыплаты за RCEОсобенностиTelegramОфициальная (ограниченная)СобственнаяТ арифы не публикуютсяНет публичной программы на HackerOne/Bugcrowd; связь через security@telegram.org. Для контекста: на рынке 0day (Zerodium) Telegram RCE/LPE chain оценивается до $500KSignalОфициальнаяСобственнаяНе публикуют тарифыМалая поверхность атаки, высокое качество кодаWhatsApp (Meta)Meta Bug BountyHackerOneДо $300K за zero-click RCEКрупнейшая программа, чёткие правилаDiscordBug BountyHackerOneДо $10K-$25KФокус на веб-уязвимостяхViberЧерез RakutenHackerOneМалые выплатыМенее активная программа Альтернативные каналы монетизации Если у мессенджера нет адекватной баг-баунти:
Scope. Многие программы исключают «теоретические» уязвимости. Ваш PoC требует условий, которые вендор считает нереалистичными (как с серверной фильтрацией Telegram) - готовьтесь к отказу. Duplicates. В крупных мессенджерах внутренние команды безопасности активно фаззят собственный код. Вероятность дубликата высокая, и это обидно. Legal risk. Исследование протоколов мессенджеров может попадать под законодательство о несанкционированном доступе. Всегда действуйте в рамках публичной программы или координированного disclosure. Начните с мессенджеров, имеющих публичные программы на HackerOne/Bugcrowd - чёткие правила и юридическая защита. Для Telegram: нашли что-то серьёзное - ZDI будет наиболее надёжным каналом с подтверждённой историей обработки отчётов (как показывает ZDI-CAN-30207). Исторические zero-day уязвимости мессенджеров: паттерны, которые повторяются Анализ предыдущих инцидентов выявляет повторяющиеся паттерны. Знание этих паттернов - компас для поиска новых уязвимостей. Паттерн 1: Библиотечные зависимости как слабое звено CVE-2023-4863 (libwebp, CWE-787: Out-of-bounds Write) - heap buffer overflow в Huffman-декодере WebP, CVSS 8.8 (HIGH). NVD-вектор указывает UI:R, но в мессенджерах автоматический рендеринг WebP-изображений фактически превращал это в zero-click. Официально затронуты Chrome, Fedora, Debian; мессенджеры (Signal, Telegram и другие) зацепило через зависимость от libwebp - одна уязвимость, десятки приложений. Обнаружили исследователи из Apple SEAR и Citizen Lab в контексте in-the-wild эксплуатации. Вывод для методологии. Исследуйте не только код мессенджера, но и все библиотеки-зависимости. Найти уязвимость в libwebp выгоднее, чем в одном конкретном мессенджере - она затрагивает всех, кто эту библиотеку тянет. Паттерн 2: Конвертация формата как вектор В 2024 году ESET обнаружил EvilVideo в Telegram для Android: сервер возвращал APK-файл с MIME-типом видео, клиент предлагал открыть его внешним плеером. Жертва видела «видео», а получала исполняемый файл. Красивый фантик, а внутри - APK. Вывод для методологии. Граница между форматами - плодородная зона. Что происходит, когда мессенджер получает файл одного типа, но с расширением или MIME-типом другого? Как обрабатываются расхождения? Потренируйтесь на этом. Паттерн 3: Протокольный уровень Уязвимости в реализации MTProto (собственный протокол Telegram) редко публикуются, но криптографы находили проблемы в ранних версиях: отсутствие проверки порядка сообщений, replay-атаки, слабости в key exchange. Понимание того, как криптография защищает данные в протоколах мессенджеров, помогает находить слабые места в нестандартных реализациях. Вывод для методологии. Собственные криптографические протоколы - всегда подозрительны. Мессенджер использует не стандартный TLS/Signal Protocol, а кастомное решение - копайте туда в первую очередь. Своё крипто - почти всегда хуже чужого проверенного. Паттерн 4: Desktop-клиенты менее защищены Мобильные ОС дают sandbox, ASLR, SELinux. Desktop-клиенты на Linux и Windows часто имеют больше привилегий и меньше уровней защиты. Не случайно ZDI-CAN-30207 затрагивает Android и Linux - наименее sandbox-ированные платформы из тех, где работает Telegram. При планировании исследования составьте матрицу: {платформа × зона атаки × паттерн}. Пересечение с наибольшей исторической частотой: Linux Desktop + медиапарсер + библиотечная зависимость. Там наиболее вероятен следующий критический баг. 5 шагов методологии поиска zero-day в мессенджере: от нуля до отчёта Суммирую всё вышесказанное - системный процесс, которого лично я придерживаюсь при исследовании мессенджера. Шаг 1: Разведка (1-2 дня)
Защита и детекция: что делать пользователям и безопасникам прямо сейчас Детали ZDI-CAN-30207 не раскрыты, патч не подтверждён - действуем проактивно. Для пользователей Обновитесь. Последняя версия Telegram на всех устройствах. Даже если Telegram говорит «уязвимости нет», обновления могут содержать тихие исправления. Вендоры так делают - и не стоит их за это ругать. Отключите автозагрузку медиа. Настройки Telegram: Data and Storage → Automatic Media Download → отключите для всех типов контента. Это не гарантия (превью может генерироваться до полной загрузки), но сокращает attack surface. Веб-версия для подозрительных чатов. Браузерный sandbox даёт дополнительный уровень изоляции по сравнению с десктопным клиентом. Для администраторов и SOC-команд Мониторинг крэшей. Крэш клиента после получения конкретного сообщения - индикатор попытки эксплуатации. Настройте алерты на повторные перезапуски процесса Telegram: Bash: Код:
# Мониторинг крэшей Telegram Desktop на LinuxОграничение на уровне политик. В корпоративной среде рассмотрите ограничение Telegram до веб-версии через MDM. Defense in depth: обновления + отключение автозагрузки + мониторинг + сетевая изоляция. Ни одна мера не даёт 100%, но их комбинация серьёзно поднимает порог эксплуатации. Куда движется охота на zero-day в мессенджерах ZDI-CAN-30207 - не изолированный инцидент, а симптом. Мессенджеры становятся одной из главных целей для исследователей и атакующих. Attack surface растёт быстрее, чем его успевают защищать. Каждый мессенджер лезет в суперприложения: мини-приложения в Telegram (TMA/TWA), платежи, Stories, бот-платформы. Каждая новая функция - новый парсер, новый протокол, новая точка входа. Серверная обработка - не серебряная пуля. Позиция Telegram по ZDI-CAN-30207 опирается на серверную фильтрацию. Но исследователи будут целенаправленно искать обходы - это уже отдельное направление атак. Ждите advisory, где root cause - обход серверного sanitizer-а. Цена zero-day в мессенджерах растёт. По мере усложнения эксплуатации мобильных ОС, zero-click RCE в мессенджере остаётся одним из немногих путей к полному захвату устройства без физического доступа. Приоритетная цель - и для этических исследователей, и для offensive-индустрии. Если вы пентестер или CTF-игрок, присматривающийся к vulnerability research - мессенджеры дают идеальное сочетание: огромная пользовательская база (высокий импакт), богатая медиаобработка (широкая attack surface), open-source компоненты (white-box анализ). Начните с фаззинга медиабиблиотек - самый низкий порог входа и самая высокая вероятность результата. ZDI-CAN-30207 показывает: следующий критический баг найдёт тот, кто систематически препарирует парсеры, а не ждёт случайного крэша. Скачайте rlottie, соберите harness из примера выше, запустите AFL++ - и посмотрите, что прилетит за ночь. |
| Время: 18:51 |