Уязвимости Telegram Desktop позволяли красть файлы через ссылку

Изображение: OpenAI
Две уязвимости Telegram Desktop позволяли похищать файлы после перехода по ссылке из-за ошибок при передаче и выполнении команд. Исследователь, опубликовавший разбор на сайте beaksec.github.io, показал на Windows захват аккаунта при условии, что пользователь не задал локальный код-пароль, а по умолчанию он не задан.
Для атаки нужны уже запущенный Telegram и файлы с инструкциями на компьютере жертвы. В конфигурации по умолчанию клиент автоматически скачивает вложения из групп размером до 8 МБ. Злоумышленник может добавить жертву в свою группу (по умолчанию её согласия не требуется) и отправить туда такие файлы: когда пользователь откроет её, вложения сохранятся на диске по предсказуемому пути.
Затем жертве предлагают обычную HTTPS-ссылку на сайт, который перенаправляет браузер на специально подготовленную ссылку tg://. Новый процесс Telegram передаёт её уже работающему клиенту через локальный сокет. Неэкранированная точка с запятой позволяет добавить к ссылке команды. Переход по tg:// прямо внутри Telegram эту цепочку не запускает.
Внедрённая команда вызывает внутренний обработчик interpret:, который Telegram использовал для публикации релизов. Он читает подготовленный файл с инструкциями и отправляет указанный в нём файл в канал или супергруппу без проверки инициатора и подтверждения пользователя. При этом сам браузер может запросить разрешение на запуск Telegram.
В демонстрации атаки исследователь показал, как похитить три файла из каталога tdata, воссоздать этот каталог и открыть сессию жертвы. Без локального код-пароля данные из похищенных файлов позволяют расшифровать сессию, хотя Telegram хранит её на диске в зашифрованном виде.
Telegram закрыл обе уязвимости в версии 7.2.9 от 17 сентября, удалив обработчик interpret: и добавив экранирование разделителя. Случаев атак пока не зафиксировано. Защититься можно обновлением клиента до версии 7.2.9 или новее. Исследователи также советуют включить локальный код-пароль и разрешить добавлять себя в группы только контактам.



