В коде FreeRDP, одной из самых популярных открытых реализаций протокола удалённого рабочего стола, обнаружена уязвимость, позволяющая вмешиваться в передачу данных при работе через HTTP-прокси. Проблема затрагивает функцию http_proxy_connect(), которая используется для установки соединения через прокси. Как сообщается в данных Банка угроз безопасности информации, функция некорректно обрабатывает управляющие последовательности CRLF в переменной ServerHostname.
Детали уязвимости
CRLF - это пара символов возврата каретки и перевода строки, с помощью которых в HTTP-протоколе разделяются строки. Если такие символы попадают в заголовок из имени сервера, программа не нейтрализует их. В результате злоумышленник может выйти за пределы текущего поля и добавить в запрос произвольные HTTP-заголовки. В классификации ошибка относится к типу CWE-113 - непринятие мер по обработке CRLF-последовательностей. В практическом плане это явление известно как расщепление HTTP-ответа.
Суть уязвимости сводится к тому, что при формировании запроса к прокси имя сервера подставляется без проверки. Атакующий, контролирующий это имя или имеющий возможность повлиять на него, может разорвать строку заголовка и добавить собственные поля. Потенциальная атака способна подменить содержимое ответа, перенаправить пользователя на вредоносный ресурс или изменить данные, передаваемые в рамках RDP-сессии. Поскольку RDP-потоки часто передаются через HTTP-туннели, изменение заголовков способно затронуть все свойства защищаемой информации - конфиденциальность, целостность и доступность.
Вектор атаки при этом сетевой. По шкале CVSS 3.1 уязвимость получила 9,8 балла из 10, по CVSS 4.0 - 9,3. В более старой метрике CVSS 2.0 оценка составила 10 баллов. Производитель присвоил уязвимости критический уровень опасности. Для эксплуатации не требуется аутентификация, специальные привилегии атакующему также не нужны. В бюллетене указано, что эксплойт уже существует в открытом доступе. Это означает, что после публикации сведений о проблеме вероятность попыток её использования существенно возрастает.
Уязвимость затрагивает версии FreeRDP до 3.29.0. Разработчики устранили проблему в версии 3.29.0 и выпустили отдельный коммит в репозитории проекта. Согласно официальным рекомендациям, основной мерой устранения является обновление программного обеспечения. Иных способов, которые позволяли бы полностью закрыть уязвимость без установки патча, в описании не приводится.
Важно учитывать, что FreeRDP используется не только как самостоятельное приложение. Эта библиотека входит в состав многих дистрибутивов Linux, встраиваемых систем и сторонних продуктов, работающих с протоколом удалённого рабочего стола. Поэтому исправление потребуется не только конечным пользователям, но и разработчикам, которые включили FreeRDP в свои решения. Особенно актуальна проблема для сред, где RDP-подключения выполняются через корпоративные HTTP-прокси: именно в таком сценарии задействован компонент http_proxy_connect().
В связи с тем, что обновление может прийти в виде нового пакета из репозитория дистрибутива, администраторам стоит учесть возможную задержку. До установки исправления целесообразно ограничить использование клиента для подключения к непроверенным серверам через прокси, если такая возможность предусмотрена инфраструктурой. Особенно внимательными следует быть при использовании автоматических подключений, где параметры сервера берутся из конфигурационных файлов. В этом случае злоумышленник может подставить специальные символы в поле имени сервера без активного участия пользователя.
Воздействие уязвимости не сводится к простому искажению запроса. В случае успешной эксплуатации атакующий может добиться подмены HTTP-заголовков, что способно привести к компрометации сессии или перехвату учётных данных. Помимо этого, возможно нарушение работы самого соединения, так как поддельные заголовки способны разорвать связь с прокси. Именно сочетание таких последствий объясняет высокую критичность проблемы.
Производитель уже подтвердил статус уязвимости. В официальном бюллетене GitHub Security Advisory содержатся ссылки на рекомендации и коммит с исправлением. Эти же материалы приводятся в описании BDU:2026-10983. Пользователям рекомендуется изучить информацию и установить обновление в кратчайшие сроки.
Уязвимость затрагивает все выпуски FreeRDP до версии 3.29.0. Разработчики оперативно подготовили патч, поэтому основной рекомендацией остаётся переход на актуальную версию. С учётом наличия публичного эксплойта затягивать с обновлением не следует.
Ссылки
- https://bdu.fstec.ru/vul/2026-10983
- https://www.cve.org/CVERecord?id=CVE-2026-67289
- https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-mwwh-mhp9-q7vm
- https://github.com/FreeRDP/FreeRDP/commit/f3b4347105114fe7453828736bea069999af319f