TGViewer
Типичный Сисадмин Типичный Сисадмин @sysodmins · 39.4K subscribers
Post #30060 6.17K
🐌 Вышел убойный разбор свежей уязвимости в Telegram Desktop... аккаунт можно угнать через точку с запятой.

Когда вы кликаете по ссылке tg:// в браузере, винда запускает второй процесс Telegram.exe. Тот видит, что клиент уже запущен, и передает ссылку работающему экземпляру через локальный сокет. Разрабы ТГ не стали заморачиваться со сложной сериализацией и написали протокол из трех моментов... ключевое слово, аргумент и точка с запятой в конце (например, OPEN:tg://x?a=1;). Экранировать сам передаваемый URL не стали или забыли 💩. Стоило запихнуть в тело ссылки символ ;, как парсер работающего клиента резал строку на две независимые команды ⚰️

Вторая половина пазла - забытый легаси-хлам. Внутри кода ТГ Desktop годами жил недокументированный внутренний протокол interpret:, который когда-то написали для скрипта автоматической публикации релизов. Он принимал текстовый файл с инструкциями (file: <путь> и channel: <ID чата>), читал указанный файл с диска и отправлял его в чат без диалогового окна и без какой-либо проверки прав 😗

Хакерская цепочка эксплуатировала связку с изяществом лома. Сначала жертву добавляют в левую группу и скидывают туда текстовый файлик с путем к файлу сессии. Десктопный клиент по умолчанию скачивает файлы до 8 МБ в downloads. Затем в чат кидают линк на сайт, сервер злоумышленника отдает 302й редирект на tg:// со сбросом через относительный путь ../../../Downloads/..., срабатывает инъекция... и ТГ сам загружает файлы авторизации на сервер атакующего ⚰️

Самая вкуснятина почему это приводило к мгновенному захвату акка. ТГ шифрует файлы сессии в папке tdata, но ключ шифрования генерится из локального код-пароля. А поскольку 99% пользователей локальный пароль в настройках десктопа не ставят, ключ шифрования создавался из… пустой строки и открытой соли. Хацкер забирал файлы key_datas и сессионный ключ, расшифровывал MTProto-авторизацию, подкидывал в чистый клиент и получал готовую сессию. Облачная двухфакторка и SMS-коды здесь не спасали в принципе, потому что копировалась уже валидная, залогиненная сессия.

Разрабы ТГ исправили дыру в версии 7.2.9, выпилив протокол interpret и наконец-то научив IPC экранировать байты. Причем сделали это в лучших традициях - максимально тихо, скромно написав в чейнджлоге "исправление ошибок рендеринга" и обозвав коммит удалением устаревшего хелпера 🤡

Типичный 🥸 Сисадмин
  • 👏 74
  • 🔥 7
  • 🌚 6
  • ❤ 4
  • 👍 3
More from @sysodmins
  1. Oct 12, 2026Когда raid-контроллер перегревается, то дело исправить может смекалка и синяя изолента. #п…
  2. Oct 12, 2026🤑Сатоши Накамото в гробу перевернулся... тут сбер показал, как будет выглядеть встроенный…
  3. Oct 12, 2026+1 навык в копилку Разбираемся с одной из самых популярных СУБД Умение работать с СУБД Pos…
  4. Oct 12, 2026😶 Анонсирован финал независимого телекома. На форуме "Цифровые решения 2026" состоялась б…
  5. Oct 12, 2026Грамотная фиксация волокна👌 ТГ: @montajniklvs
  6. Oct 11, 2026А вдруг крах облачных монополий наконец-то запустит целительную децентрализацию и вернет к…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →