Telegram устранил уязвимость нулевого дня в своём приложении для Windows, которая позволяла обходить предупреждения безопасности и автоматически запускать скрипты Python. Об этом сообщили разработчики после распространения слухов и видео, демонстрирующих уязвимость на различных платформах и форумах.
Согласно исходномусообщению, ошибка в исходном коде позволяла отправлять файлы “.pyzw”, которые при нажатии на них запускались автоматически. В Telegram отметили, что хотя изначально сообщалось о наличии уязвимости, позволяющей выполнять код без нажатия на файл, действительность оказалась иной. Для эксплуатации недостатка необходимо было наличие установленного интерпретатора Python и нажатие на замаскированный файл. Отмечается, что ошибка могла затронуть лишь незначительную долю пользователей – менее 0.01%.
Компания применила исправление на стороне сервера, благодаря которому файлы “.pyzw” теперь получают расширение “.untrusted”, что заставляет Windows запрашивать, в какой программе открыть файл, вместо его автоматического запуска.
Серверное исправление Telegram
Используя уязвимость, исследователи безопасности замаскировалифайл под MP4-видео с использованием Telegram-бота, что вводило пользователей в заблуждение и заставляло их запускать скрипт. Такие действия позволяли злоумышленникам удалённо выполнять код на устройствах Windows.
Демонстрация ошибки с открытием командной строки
После сообщения о недостатке 10 апреля, разработчики Telegram быстро внесли изменения в исходный код, исправив написание расширения в файле кода “data_document_resolver.cpp”. Однако это исправление пока не действует, поскольку предупреждения не появляются, когда вы щелкаете файл для его запуска.
Расширение “.pyzw” предназначено для ZIP-приложений Python, которые представляют собой автономные программы Python, содержащиеся в ZIP-архивах. Разработчики Telegram осознавали, что такие типы исполняемых файлов следует считать рискованными, и добавили их в список расширений исполняемых файлов. Однако, при добавлении расширения, разработчики допустили опечатку, введя расширение как “pywz” вместо правильного написания “pyzw”.
Исправление написания расширения Python “.pyzw”
Поэтому, когда файл был отправлен через Telegram, и пользователь нажал на него, автоматически запускался скрипт Python, если он был установлен в Windows.
Представители Telegram также заявили, что в будущих версиях приложения планируется возвращение предупреждений о безопасности, что усилит защиту пользователей от подобных атак.