Исследователи раскрыли цепочку запуска кода без клика через интерактивные виджеты в старых версиях Telegram. Технические материалы стали публичными 12 ноября, однако описанные ошибки уже исправлены в актуальных сборках, утверждают авторы репозитория.
По их описанию, сообщение типа sendWidget передаёт HTML и JavaScript, а клиент Telegram отображает их с помощью litehtml и QuickJS-ng. Код виджета выполнялся во время компоновки сообщения, поэтому нажатие на сам виджет не требовалось.
Ошибка в движке обработки виджетов позволяла повредить память приложения и перейти от JavaScript внутри сообщения к выполнению команд с правами Telegram. Это уже не обычный JavaScript внутри сообщения: при успешной эксплуатации код мог работать с правами самого приложения Telegram.
Читайте также
Авторы опубликовали исследовательскую демонстрацию и не сообщали о применении цепочки в реальных атаках. Авторы прямо называют репозиторий архивом технического исследования. Они также указывают, что отправка виджетов доступна не любому боту или аккаунту: без разрешения Telegram сервер возвращает ошибку INPUT_MEDIA_WIDGET_NOT_ALLOWED.
Тем, кто давно не обновлял Telegram, нужно установить актуальную версию клиента из официального канала распространения.
Ранее мы писали об исправлении другой проблемы интерактивных виджетов в Android-клиенте Telegram. Новая публикация описывает другую бескликовую цепочку и подтверждает её исправление в актуальных сборках.
