RSS icon Pokerok
2к+
Свежие новости 0 30 сегодня в 13:20

Один клик, и tdata уже не твои: разбор CVE-2026-107181 в Telegram Desktop

Привет. В арбитраже на десктопном Telegram держат самое ценное: фермы аккаунтов в формате tdata, рабочие каналы, переписку с реклами и байерами. И почти все уверены, что угнать такой аккаунт можно только фишингом кода или вредоносом на машине. 7 октября уверенность дала трещину: уязвимости в Telegram Desktop присвоили номер CVE-2026-107181, а ее суть в том, что аккаунт угоняется одним кликом по ссылке в группе, без единого запущенного руками файла. Файлы tdata сами улетают атакующему, и дальше его клиент открывает твою сессию как свою. Telegram дыру уже закрыл, но так тихо, что многие фермы до сих пор могут сидеть на уязвимых сборках. Разбираем, как это устроено, кто в зоне риска и что делать.
Один клик, и tdata уже не твои: разбор CVE-2026-107181 в Telegram Desktop

 

Что случилось в двух словах

 

Исследователь под ником beaksec (в кредите VulnCheck назван как Эмилиано Версини) 3 октября опубликовал разбор и PoC. Короткая формула: открываешь присланную в чат ссылку, клиент без подтверждения читает с диска свои же файлы сессии и шлет их в чат атакующего. В этих файлах — ключ авторизации, так что получивший их поднимает твою сессию на своей машине. Полноценный угон аккаунта из одного клика.
 

Затронуты все версии Telegram Desktop до 7.2.8 включительно. PoC подтвержден на Windows; macOS и Linux автор отдельно не подтверждал, но механика у клиента общая — исходите из того, что уязвимы все десктопные сборки до фикса. Мобильные клиенты и веб к этой дыре отношения не имеют, речь только про десктоп.
 

Коротко по цифрам. CVE-2026-107181. CVSS 8.1 из 10 по версии 3.1 и 8.6 по версии 4.0 — это High, высокая опасность. Тип по классификатору — CWE-143 (неэкранированный разделитель записей). В каталог активно эксплуатируемых (CISA KEV) не попала, оценка вероятности эксплуатации EPSS низкая (меньше 1%).

Публичных случаев эксплуатации в дикой природе на момент выхода разбора не задокументировано — но PoC уже лежит в открытом доступе.

 

Как это работает: принцип без рабочей схемы

 

Конкретные строки эксплойта опущу (полную цепочку давать не будем), но принцип важен — от него зависит защита. Тут сцепились 2 бага.

Когда Telegram Desktop уже запущен, а ты кликаешь ссылку вида tg://, система все равно стартует второй процесс клиента. Тот понимает, что лишний, и передает ссылку работающему клиенту через локальный канал между процессами (IPC, компонент Core::Sandbox) — текстом, несколько команд в строке, разделенных точкой с запятой.

Первый баг: значения внутри строки не экранировались. Вшей в ссылку свою точку с запятой — и принимающая сторона разрежет ее на лишние команды и выполнит как отдельные инструкции. Это и есть инъекция.

Второй баг — куда инъекция дотягивается. У Telegram есть внутренняя недокументированная схема interpret:.

Изначально это служебный инструмент релиза: скрипт писал текстовый файл-инструкцию (в какой канал и какой файл отправить, с какой подписью) и скармливал клиенту, чтобы тот сам выложил сборку. Беда в том, что функция читает указанный файл с диска и шлет его в чат без проверки, кто ее позвал, и без подтверждения. Из командной строки своей машины это безопасно, но через инъекцию стало доступно по кликнутой ссылке.
 

Как положить файл-инструкцию на чужой диск по известному пути? Это зашито в дефолт клиента: Telegram Desktop автоматически качает файлы из групп (до 8 МиБ) в предсказуемую папку загрузок под именем отправителя. Атакующему хватает добавить жертву в группу (по умолчанию без подтверждения), скинуть туда файлы-инструкции и ссылку.

Жертва открыла группу — файлы тихо осели на диск. Кликнула ссылку — инъекция сработала, указанные файлы улетели в чат атакующего. Ни одного диалога подтверждения. Кликнутая внутри чата tg:// до сокета не доходит, поэтому атака идет через обычную https-ссылку с редиректом на вредоносную tg://.

 

Что именно утекает и почему этого хватает для угона

 

Из папки tdata уходят 3 файла: key_ datas (соль и зашифрованный ключ данных), D877F783D5D3EF8Cs (та самая MTProto-авторизация, зашифрованная ключом) и maps из подпапки с тем же именем (индекс хранилища). Имя подпапки, к слову, не случайное и одинаковое на всех установках — оно выводится из дефолтного имени данных, так что атакующему не нужно его угадывать.
 

А дальше — главный нюанс, из-за которого фермы в зоне риска. Если локальный код-пароль не задан (а по умолчанию он не задан), ключ шифрования выводится из пустой строки и соли, лежащей открытым текстом в том же key_datas.

То есть по трем файлам сессия разворачивается на чужом устройстве без всякого пароля: закинул их в свежую tdata, запустил Telegram — и ты в аккаунте жертвы. С заданным код-паролем файлы украдут, но поднять сессию без пароля не выйдет. Механика та же, что с сессионной кукой на сайте: забрал — стал этим пользователем. Сам примитив при этом шире — произвольное чтение файла с диска, просто сессия Telegram тут самая очевидная цель.

 

Почему многие до сих пор на уязвимых сборках

 

Вот это — ключевое для нашей аудитории. Telegram закрыл дыру так, что заметить фикс было почти невозможно.
 

Фикс приехал коммитом db3405699f от 16 сентября (автор — Джон Престон, ведущий разработчик Telegram Desktop). На следующий день вышла сборка 7.2.9. Что написано в ее чейнджлоге целиком?

Дословно: "Fix some tlottie incorrect renderings" — только про отрисовку. Ни слова про безопасность, угон или tdata. Сам коммит, закрывающий всю цепочку, назван нейтрально — про удаление устаревшего служебного помощника. Advisory не выпускали. Дыру заткнули молча.
 

Практический вывод: ориентироваться на чейнджлоги Telegram в вопросах безопасности бессмысленно — критичные фиксы едут под видом косметики. Обновляться надо по факту выхода версий, а не когда в релизе напишут слово "security".
 

Что поправили: разделитель записей теперь экранируется (точка с запятой внутри значения больше не становится границей команды), схему interpret: и функцию отправки файлов вырезали целиком, плюс добавили подстраховку против инъекции других команд. Лечили не симптом, а оба бага сразу.
 

Хронология, чтобы было видно, сколько дыра жила открытой:
 

  • 25.06.2026 — репорт через ZDI.
  • 16.09.2026 — вендор сам пофиксил, коммит db3405699f.
  • 17.09.2026 — вышла 7.2.9 (в changelog только про отрисовку).
  • 30.09.2026 — ZDI закрыл кейс как уже исправленный.
  • 03.10.2026 — публикация разбора и PoC (beaksec).
  • 07.10.2026 — присвоен CVE-2026-107181.

Минимально безопасная версия — 7.2.9, но после нее вышли 7.2.10, 7.3.0 и 7.3.1 (10 октября), так что ставьте текущую.

 

Кто в зоне риска: именно фермы tdata

 

Обычного пользователя дыра задевает по касательной: нужна социнженерия — добавить в группу, подсунуть ссылку, дождаться клика. А арбитражная ферма — идеальная мишень:
 

  • Формат хранения тот самый. Аккаунты держат папками tdata на десктопе, пачками, часто на одной машине под открытыми клиентами.
  • Код-пароль почти никогда не стоит — на заливных аккаунтах это лишнее трение. А без него украденная сессия поднимается без пароля.
  • Аккаунты постоянно сидят в чужих чатах — приват-чаты, складчины, байерские группы, каналы реклов. Клик по ссылке там обыденность, приватность добавления в группы выкручена на всех.
  • Автозагрузка включена по умолчанию — никто не отключает ее на десятках профилей.

Сложите вместе — и получите ровно условия атаки: аккаунт в tdata, без код-пароля, с автозагрузкой, в чужой группе со ссылкой. Для фермера это не абстрактный CVE, а описание обычного рабочего дня.

 

Пошаговая защита

 

Один клик, и tdata уже не твои: разбор CVE-2026-107181 в Telegram Desktop

По приоритету, от главного к второстепенному:
 

  1. Обновить клиент до 7.2.9+ (лучше до текущей 7.3.1) на всех машинах с аккаунтами. Единственное, что закрывает дыру целиком; остальное лишь снижает ущерб.
  2. Поставить локальный код-пароль (Настройки — Конфиденциальность — Код-пароль). Шифрует tdata так, что украденные файлы не поднимутся без пароля.
  3. Отключить автозагрузку или включить вопрос, куда сохранять файл (Настройки — Продвинутые — Автозагрузка медиа). Если файл-инструкция не падает на диск сам, подсунуть его по пути нельзя. По оценке автора — самая эффективная мера после обновления.
  4. Ограничить добавление в группы — только контакты (Настройки — Конфиденциальность — Группы и каналы). Файлы атакующий может слать только в свой канал или супергруппу, куда и затягивает жертву. Закрыл добавление — забрал площадку.
  5. Не кликать ссылки в чужих группах с рабочих аккаунтов. Банально, но именно клик запускает цепочку.

 

Что делать, если tdata могла утечь

 

Если есть подозрение, что с аккаунта кликали мутную ссылку в чужой группе на уязвимой версии — исходите из того, что файлы уже скопированы, и действуйте так, будто сессия в чужих руках.
 

  • Завершить все другие сеансы (Настройки — Устройства — Завершить все другие сеансы). Ключевой шаг: отзывает ту самую MTProto-авторизацию, которую могли украсть, и копия сессии перестает работать.
  • Включить облачный пароль (2FA), если не был. Но учтите: сам 2FA не спасает от уже скопированной сессии — ключ работает и без него. Поэтому сперва обязательно завершаем сеансы, и только это реально обрывает доступ; 2FA — на будущее.
  • Обновить клиент и поставить код-пароль до следующего входа.
  • Перепроверить, что уходило через аккаунт за время возможной компрометации: привязанные каналы, боты, доступы, переписку с деньгами.

 

Итог

 

CVE-2026-107181 — не про экзотику, а про дефолтные настройки, на которых работают многие фермы: tdata на десктопе, без код-пароля, с автозагрузкой, в чужих группах. Дыру закрыли основательно, но молча — в релизе ни слова, advisory нет. Реальный риск сейчас не в самой уязвимости, а в том, что про фикс никто не узнал.
 

Делается все за 5 минут: обновить клиент до 7.2.9+ на всех машинах, прогнать по аккаунтам код-пароль и автозагрузку, закрыть добавление в группы. Дешевая страховка против сценария, где один клик менеджера уводит пачку рабочих аккаунтов разом. А привычку не ждать слова "security" в чейнджлоге Telegram стоит занести в регламент: его там может не быть никогда.

Принеси в жертву лайк и шеринг во славу бога Рандома, и профитный конверт будет сопутствовать тебе всю неделю!

Трафик, котики, завод!

Комментарии