CVE-2026-26986
Received Received - Intake
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
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.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-02-25
Last Modified
2026-02-27
Generated
2026-06-16
AI Q&A
2026-02-26
EPSS Evaluated
2026-06-15
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
freerdp freerdp to 3.23.0 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
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 Quick Actions
Instant insights powered by AI
Executive Summary

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.

Impact Analysis

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.

Compliance Impact

I don't know

Detection Guidance

I don't know

Mitigation Strategies

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.

Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-26986. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart