FreeRDP — это бесплатная реализация протокола удаленного рабочего стола. До версии 3.23.0 `xf_SetWindowMinMaxInfo` разыменовывает освобожденный указатель `xfAppWindow`, поскольку `xf_rail_get_window` в `xf_rail_server_min_max_info` возвращает незащищенный указатель из хеш-таблицы `railWindows`, и основной поток может одновременно удалить окно (посредством порядка удаления окна), пока канал RAIL поток все еще использует указатель. Версия 3.23.0 устраняет проблему.
Показать оригинальное описание (EN)
FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_SetWindowMinMaxInfo` dereferences a freed `xfAppWindow` pointer because `xf_rail_get_window` in `xf_rail_server_min_max_info` returns an unprotected pointer from the `railWindows` hash table, and the main thread can concurrently delete the window (via a window delete order) while the RAIL channel thread is still using the pointer. Version 3.23.0 fixes the issue.
Характеристики атаки
Последствия
Строка CVSS v4.0