CVE-2026-26986
Use-After-Free in FreeRDP rail_window Component Causes Crash
Publication date: 2026-02-25
Last updated on: 2026-02-27
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| freerdp | freerdp | to 3.23.0 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-416 | 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. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability exists in FreeRDP, a free implementation of the Remote Desktop Protocol, in versions prior to 3.23.0. The issue occurs because the function `rail_window_free` dereferences a pointer (`xfAppWindow`) that has already been freed during the cleanup process of a hash table (`HashTable_Free`). This happens because `xf_rail_window_common` calls `free(appWindow)` when there is a failure allocating a window title, but it does not remove the corresponding entry from the `railWindows` hash table first. As a result, a dangling pointer remains in the hash table and is freed again later upon disconnect, leading to a double-free condition.
How can this vulnerability impact me? :
The vulnerability can lead to a double-free condition, which may cause undefined behavior such as application crashes or potential exploitation by attackers. This could result in denial of service or possibly allow an attacker to execute arbitrary code or corrupt memory, depending on the environment and how the vulnerability is triggered.
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
I don't know
How can this vulnerability be detected on my network or system? Can you suggest some commands?
I don't know
What immediate steps should I take to mitigate this vulnerability?
To mitigate this vulnerability, you should upgrade FreeRDP to version 3.23.0 or later, as this version contains the fix for the issue where a freed pointer is dereferenced during cleanup.