Одно сообщение в Telegram, и ваш компьютер взломан. Новая уязвимость угрожает пользователям десктопной версии

Одно сообщение в Telegram, и ваш компьютер взломан. Новая уязвимость угрожает пользователям десктопной версии

Разработчики уже выпустили исправление, но до всех устройств защитный патч так и не добрался.

image

Новые виджеты Telegram превратились в проблему сразу для смартфонов и компьютеров. В Telegram Desktop 7.4.2, вышедшем 11 ноября, исправили несколько ошибок движка QuickJS, но пропустили патч дефекта, способного привести к выполнению постороннего кода. Для Android исправленная сборка уже доступна, а для ПК статус проблемы остаётся открытым.

Поддержка виджетов появилась 9 ноября вместе с Bot API 10.4. Боты получили возможность отправлять интерактивные HTML-карточки прямо в переписке. Внутри работают опросы, игры и другие мини-сервисы с JavaScript. Размер HTML-документа ограничен 32 КБ до сжатия и 4 КБ после него. Telegram запускает сценарии в QuickJS, который должен изолировать посторонний код от системы.

Уязвимость скрывалась в интерпретаторе JavaScript. При обработке конструкции await using внутри определённых циклов QuickJS мог сохранить ссылку на память завершившейся функции. Ошибку такого типа называют use-after-return. Обращение к памяти завершённого вызова позволяет нарушить работу программы, а при удачной эксплуатации может привести к выполнению нативного кода.

Разработчики Telegram 10 ноября исправили дефект в собственном форке QuickJS коммитом ca3594d. Патч запрещает некорректную конструкцию в обычных функциях и блокирует опасный путь в интерпретаторе. Исправление вошло в widget-sandbox 0.6.4 вместе с пятью другими исправлениями ошибок памяти, которые способен вызвать JavaScript-код виджета.

Однако Telegram Desktop 7.4.2 собрали с более ранней ревизией widget-sandbox a74626d. В коммите ef3f6fd разработчики подтянули пять исправлений, но не включили ca3594d. Следовательно, опубликованный код настольного приложения по-прежнему содержит уязвимый механизм. Подтверждённой демонстрации выполнения чужого кода на Windows, macOS или Linux пока нет.

Компания V12 показала на Android, как виджет запускает постороннее приложение. После открытия чата с ботом и нажатия Start Bot появился обратный отсчёт, а затем запустился системный калькулятор. Telegram заявил об устранении ошибки в Android 13.2.2 и распространении обновления. Дополнительно виджеты на Android перенесли в отдельный изолированный процесс.

Общий код виджетов предназначен для Android, iOS, Windows, macOS, Linux и веб-клиента, но версии движка и условия исполнения различаются. В браузере используется WebAssembly, поэтому последствия ошибки нельзя автоматически приравнивать к захвату компьютера. В рабочей сети Telegram виджеты пока доступны только в личных чатах с ботами. Другие способы распространения ограничены тестовым сервером.

Рекламодатель
Реклама. АО «Позитив Текнолоджиз». ИНН 7718668887. 18+
Сайт рекламодателя: ptsecurity.com↗️
АО «Позитив Текнолоджиз»