FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, rail_window_free dereferences a freed xfAppWindow pointer during HashTable_Free cleanup because xf_rail_window_common calls free(appWindow) on title allocation failure without first removing the entry from the railWindows hash table, leaving a dangling pointer that is freed again on disconnect. Version 3.23.0 fixes the vulnerability.
The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory “belongs” to the code that operates on the new pointer.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Freerdp | Freerdp | * | 3.23.0 (excluding) |