Description
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.
Problem types
Product status
References
github.com/...reeRDP/security/advisories/GHSA-cgqm-cwjg-7w9x
github.com/...ommit/1994e9844212a6dfe0ff12309fef520e888986b5
github.com/...2b4806c2a5c583ca39dd9ef1e/client/X11/xf_rail.c
github.com/...2b4806c2a5c583ca39dd9ef1e/client/X11/xf_rail.c
github.com/...2b4806c2a5c583ca39dd9ef1e/client/X11/xf_rail.c
github.com/...2b4806c2a5c583ca39dd9ef1e/client/X11/xf_rail.c
github.com/...2b4806c2a5c583ca39dd9ef1e/client/X11/xf_rail.c
github.com/...4806c2a5c583ca39dd9ef1e/client/X11/xf_window.c
github.com/...4806c2a5c583ca39dd9ef1e/client/X11/xf_window.c
github.com/...4806c2a5c583ca39dd9ef1e/client/X11/xf_window.c
github.com/...4806c2a5c583ca39dd9ef1e/client/X11/xf_window.c