FreeRDP — это бесплатная реализация протокола удаленного рабочего стола. До версии 3.23.0 `xf_clipboard_format_equal` считывает освобожденную память `lastSentFormats`, поскольку `xf_clipboard_formats_free` (вызываемый из потока канала cliprdr во время автоматического повторного подключения) освобождает массив, в то время как поток событий X11 одновременно выполняет итерацию в `xf_clipboard_changed`, вызывая использование кучи после освобождения. Версия 3.23.0 устраняет проблему.
Показать оригинальное описание (EN)
FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_clipboard_format_equal` reads freed `lastSentFormats` memory because `xf_clipboard_formats_free` (called from the cliprdr channel thread during auto-reconnect) frees the array while the X11 event thread concurrently iterates it in `xf_clipboard_changed`, triggering a heap use after free. Version 3.23.0 fixes the issue.
Характеристики атаки
Последствия
Строка CVSS v4.0