FreeRDP до 3.32.0: переполнение кучи в парсере Persistent Cache v2 (CVE-2026-111381)
В FreeRDP до версии 3.32.0 обнаружена уязвимость переполнения буфера кучи в функции persistent_cache_read_entry_v2. Локальный атакующий может подготовить специальный файл Persistent Cache v2 с завышенными значениями ширины и высоты, что приводит к целочисленному переполнению и повреждению памяти. Критичность — высокая (CVSS 7).
Подробности
Уязвимость затрагивает FreeRDP версий до 3.32.0. Она локализована в функции persistent_cache_read_entry_v2, отвечающей за разбор записей файла Persistent Cache версии 2 — структуры, которую клиент использует для кэширования графических данных RDP-сессии. Корень проблемы — целочисленное переполнение (integer wraparound) при вычислении размера битмапа. Атакующий может сформировать файл Persistent Cache v2 с намеренно завышенными значениями полей width и height. При обработке такого файла расчёт размера записи даёт некорректный результат: реальный объём данных не совпадает с учтённым размером записи, тогда как чтение выполняется фиксированными блоками по 16 КиБ. Это несоответствие приводит к переполнению буфера в куче (heap buffer overflow). Поскольку для эксплуатации требуется лишь локальный доступ и специально подготовленный файл кэша, вектор атаки предполагает загрузку вредоносного файла в целевой системе. Последствия варьируются от аварийного завершения процесса (краш) до потенциального выполнения произвольного кода в контексте уязвимого приложения. На сегодня сведения об активной эксплуатации уязвимости в дикой природе в записи CVE отсутствуют.Что делать
Основная и наиболее надёжная рекомендация — обновить FreeRDP до версии 3.32.0 или более поздней, в которой устранена описанная проблема. Обновление следует провести на всех системах и во всех приложениях, использующих библиотеку FreeRDP, включая RDP-клиенты и встроенные компоненты стороннего ПО. Если немедленное обновление невозможно, в качестве временных мер защиты рекомендуется: - ограничить загрузку и обработку файлов Persistent Cache из недоверенных источников; - не открывать файлы кэша, полученные от неизвестных отправителей; - по возможности изолировать процессы, работающие с FreeRDP, применяя sandbox-механизмы и ограничение привилегий; - отслеживать аномальные завершения процессов RDP-клиента, которые могут свидетельствовать о попытке эксплуатации. Также стоит проверить, использует ли ваше программное обеспечение встроенную версию FreeRDP, и запросить у поставщика соответствующее обновление. Итог: CVE-2026-111381 — серьёзная уязвимость с высокой оценкой CVSS, позволяющая повредить память при обработке специально созданного файла Persistent Cache v2. Единственное полноценное решение — переход на FreeRDP 3.32.0 или новее; до обновления следует минимизировать обработку недоверенных файлов кэша и ограничить привилегии RDP-клиентов.Источник: CVE Project (cvelistV5)
