FreeRDP — это бесплатная реализация протокола удаленного рабочего стола. До версии 3.23.0 xf_rail_server_local_move_size разыменовывает освобожденный указатель xfAppWindow, поскольку xf_rail_get_window возвращает незащищенный указатель из хеш-таблицыrailWindows, и основной поток может одновременно удалить окно (через порядок удаления окна), в то время как поток канала RAIL все еще использует указатель. Версия 3.23.0 устраняет проблему.
Показать оригинальное описание (EN)
FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_rail_server_local_move_size` dereferences a freed `xfAppWindow` pointer because `xf_rail_get_window` 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