Telegram разрешит запускать JavaScript прямо в сообщениях. Что может пойти не так?

9036
Telegram разрешит запускать JavaScript прямо в сообщениях. Что может пойти не так?

Telegram меняет правила переписки.

image

В Telegram обнаружили экспериментальную систему, которая позволит запускать JavaScript прямо внутри сообщений. Вместо обычного текста в чатах смогут появляться интерактивные приложения, работающие без открытия браузера. Новая возможность одновременно вызывает вопросы к безопасности переписки.

Подсистему HTMLBubbles обнаружили в бета-версии Telegram 12.10.283300 для macOS. Разработчики предусмотрели поддержку HTML, CSS и JavaScript непосредственно в области сообщения. Пользователь сможет нажимать кнопки, менять параметры, работать с графиками и взаимодействовать с другими элементами, не покидая переписку. Пока функция остаётся внутренним экспериментом и недоступна обычным пользователям и ботам.

В обнаруженной сборке содержатся 64 демонстрационных сценария. Среди них карточки интернет-магазинов с выбором цвета и размера товара, посадочные талоны, списки задач, интерактивные графики и шахматы. Есть и более сложные примеры для разработчиков, включая просмотр кода и панели управления сборками программ с кнопками запуска и отката изменений. Каждое сообщение фактически превращается в небольшой самостоятельный интерфейс.

Главное отличие HTMLBubbles от существующих Mini Apps заключается в способе запуска. Сейчас мини-приложение открывается как отдельная веб-страница внутри Telegram и взаимодействует с сервером. Новый механизм предполагает выполнение сценариев непосредственно в сообщении, без отдельного окна WebView. Такой подход позволяет встроить интерактивные элементы в обычную ленту переписки, но одновременно переносит выполнение программного кода ближе к основному интерфейсу мессенджера.

Для отображения содержимого разработчики выбрали litehtml, компактный движок для обработки HTML и CSS. Библиотека разбирает структуру документа и рассчитывает расположение элементов, а текст и изображения рисует само приложение средствами macOS. В отличие от полноценного браузера, litehtml поддерживает лишь часть веб-стандартов. Выполнение JavaScript обеспечивает отдельный механизм, а не сама библиотека отображения.

Скрипты запускаются в специальной песочнице, которая должна изолировать программный код от остальной системы. Согласно описанию прототипа, JavaScript не получает доступ к привычным браузерным объектам document и window, не может отправлять запросы через fetch и XMLHttpRequest или открывать сетевые соединения. Также недоступны WebSocket и localStorage. В результате сценарии не должны напрямую обращаться к внешним серверам или хранилищу браузера.

Дополнительные ограничения касаются загружаемого содержимого. HTMLBubbles блокирует внешние изображения по HTTP и HTTPS, а элементы video, audio, iframe и canvas игнорирует. Для оформления карточек предполагается использовать встроенные ресурсы и системные значки. Такая архитектура сокращает возможности программного кода, включая скрытую загрузку стороннего содержимого, хотя сама по себе не гарантирует отсутствие уязвимостей.

Telegram также ограничил потребление вычислительных ресурсов. Один вызов JavaScript может занимать не более 50 миллисекунд, а суммарное время выполнения ограничено 200 миллисекундами в секунду. Одновременно разрешено до 16 таймеров. Если сценарий превышает установленный лимит или завершается ошибкой, сообщение должно переключаться на статическую HTML-версию. Для невидимых на экране элементов предусмотрена приостановка анимации.

Однако даже при таких ограничениях выполнение JavaScript внутри переписки создаёт новую поверхность атаки. Если злоумышленник сумеет обойти изоляцию или воспользуется ошибкой обработки HTML, CSS либо событий интерфейса, специально подготовленное сообщение потенциально сможет повлиять на работу клиента. Масштаб возможных последствий будет зависеть от архитектуры песочницы, доступных внутренних функций Telegram и того, насколько надёжно программа отделяет содержимое сообщения от собственных компонентов.

Подобные опасения имеют технические основания. В сентябре 2026 года стало известно об уязвимости Telegram Desktop, которая позволяла внедрять JavaScript через текст кнопки в HTML-экспорт переписки. Вредоносный код выполнялся при открытии сохранённого архива в браузере, а не при обычном просмотре чата. Ошибку исправили в Telegram Desktop 7.0.1, однако случай показал, насколько опасной может оказаться недостаточная обработка недоверенного содержимого.

Новый механизм отличается от прежней уязвимости принципиально. HTMLBubbles изначально предусматривает программируемые сообщения, поэтому разработчикам необходимо защищать не только обработку разметки, но и саму среду исполнения. Особенно существенным остаётся вопрос, смогут ли скрипты запускаться автоматически при появлении сообщения на экране или только после действий пользователя. Публичного технического описания такого поведения пока нет.

Существование экспериментального модуля в коде Telegram для macOS независимо подтвердили специалисты сообщества Telegram Info, однако фактическую работу всех заявленных сценариев проверить пока не удалось. Сведения о 64 демонстрациях и конкретных ограничениях основаны преимущественно на изучении тестовой сборки. Официального анонса HTMLBubbles, результатов независимого аудита безопасности и подтверждений практической эксплуатации уязвимостей новой системы пока нет.

Неизвестно и то, каким образом пользователи или разработчики ботов смогут создавать интерактивные сообщения, появится ли поддержка HTMLBubbles на Android, iOS и Windows и какие ограничения сохранятся к публичному запуску. Telegram не объявил сроки выпуска функции. Разработчики могут существенно изменить механизм или вовсе отказаться от эксперимента. Пока HTMLBubbles показывает возможное направление развития мессенджера, в котором сообщение перестаёт быть просто текстом и становится исполняемым интерфейсом.