CVE-2026-26955

HIGH CVSS 3.1: 8,8 EPSS 0.07%
Обновлено 25 февраля 2026
Freerdp
Параметр Значение
CVSS 8,8 (HIGH)
Устранено в версии 3.23.0
Тип уязвимости CWE-787 (Запись за пределами буфера)
Поставщик Freerdp
Публичный эксплойт Нет

FreeRDP — это бесплатная реализация протокола удаленного рабочего стола. До версии 3.23.0 вредоносный RDP-сервер мог инициировать переполнение буфера кучи в клиентах FreeRDP, используя поверхностный конвейер GDI (например, `xfreerdp`), отправив поверхностную команду RDPGFX ClearCodec с прямоугольником назначения за пределами границ. Обработчик gdi_SurfaceCommand_ClearCodec() не вызывает is_within_surface() для проверки соответствия командного прямоугольника размерам целевой поверхности, что позволяет контролируемому злоумышленником cmd->left`/`cmd->top` (и смещениям прямоугольника подкодека) достигать процедур копирования изображений, которые записывают в `surface->data` без соблюдения границ.

Запись OOB повреждает указатель `codecs*` соседней структуры `gdiGfxSurface` на контролируемые злоумышленником пиксельные данные, а повреждения `codecs*` достаточно для достижения косвенного вызова указателя функции (`NSC_CONTEXT.decode` в `nsc.c:500`) в последующей команде кодека — полное управление указателем инструкций (RIP), продемонстрированное в обвязке уязвимостей. Чтобы получить исправление, пользователям следует обновиться до версии 3.23.0.

Показать оригинальное описание (EN)

FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, a malicious RDP server can trigger a heap buffer overflow in FreeRDP clients using the GDI surface pipeline (e.g., `xfreerdp`) by sending an RDPGFX ClearCodec surface command with an out-of-bounds destination rectangle. The `gdi_SurfaceCommand_ClearCodec()` handler does not call `is_within_surface()` to validate the command rectangle against the destination surface dimensions, allowing attacker-controlled `cmd->left`/`cmd->top` (and subcodec rectangle offsets) to reach image copy routines that write into `surface->data` without bounds enforcement. The OOB write corrupts an adjacent `gdiGfxSurface` struct's `codecs*` pointer with attacker-controlled pixel data, and corruption of `codecs*` is sufficient to reach an indirect function pointer call (`NSC_CONTEXT.decode` at `nsc.c:500`) on a subsequent codec command — full instruction pointer (RIP) control demonstrated in exploitability harness. Users should upgrade to version 3.23.0 to receive a patch.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Требуется
Нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1