
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-22856 is a heap use-after-free vulnerability in FreeRDP's serial channel IRP thread tracking mechanism, classified as a race condition (CWE-362 / CWE-416). It affects all FreeRDP versions prior to 3.20.1 and was disclosed on January 14, 2026, by researcher ehdgks0627 via a GitHub Security Advisory. The vulnerability carries a CVSS v3.1 base score of 8.1 (High) and a CVSS v4.0 base score of 6.8 (Medium) (GitHub Advisory, Red Hat Bugzilla). Only FreeRDP-based clients are affected; FreeRDP-based servers are not impacted (FreeRDP Release).
The root cause is improper synchronization (CWE-362) of concurrent access to the serial->IrpThreads list dictionary, which is created without internal locking (ListDictionary_New(FALSE)). When close_terminated_irp_thread_handles removes and frees a list node under TerminatingIrpThreadsLock, the create_irp_thread function can simultaneously call ListDictionary_GetItemValue without holding that lock, resulting in a heap use-after-free (CWE-416) on the freed node (GitHub Advisory). The vulnerable code path is in channels/serial/client/serial_main.c, specifically in the create_irp_thread and close_unterminated_irp_thread functions. A malicious RDP server can trigger this condition by manipulating serial port IRP (I/O Request Packet) operations to induce the race. The fix changes the list dictionary to synchronized mode (ListDictionary_New(TRUE)) so all operations acquire the internal lock (GitHub Advisory).
Successful exploitation can cause a client-side crash (denial of service) and, depending on heap layout and allocator behavior, may enable arbitrary code execution on the connecting client system. A malicious or compromised RDP server can trigger this condition against any FreeRDP-based client that has serial port redirection enabled, potentially achieving full compromise of confidentiality, integrity, and availability of the client system (GitHub Advisory). The attack is network-based and does not require authentication or elevated privileges on the attacker's side, though the high attack complexity (timing-dependent race condition) limits reliable exploitation (Red Hat Bugzilla).
A proof-of-concept (PoC) exploit demonstrating the vulnerability via AddressSanitizer output is publicly available in the GitHub Security Advisory (GitHub Advisory). There is no evidence of in-the-wild exploitation at this time, and no threat actor attribution has been reported. The EPSS score is approximately 0.038% (very low probability of exploitation in the near term). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The CVSS v4.0 exploit maturity is rated as "Proof of Concept" (Feedly).
rdpdr virtual channel with serial port device redirection./drive or serial device options).rdpdr channel to induce concurrent execution of close_terminated_irp_thread_handles and create_irp_thread on the client side.create_irp_thread to call ListDictionary_GetItemValue on a node that close_unterminated_irp_thread has already freed, resulting in a heap use-after-free read at the freed memory address.xfreerdp, wlfreerdp, etc.) crashing unexpectedly during or after RDP sessions involving serial port redirection; crash dumps referencing ListDictionary_GetItemValue, create_irp_thread, or serial_main.c.heap-use-after-free at addresses within ListDictionary.c:510 or serial_main.c:641; segmentation fault signals from the FreeRDP client process.rdpdr virtual channel./var/crash/, /tmp/core.*) following RDP sessions.The primary remediation is to upgrade FreeRDP to version 3.20.1 or later, which fixes the vulnerability by initializing serial->IrpThreads as a synchronized list dictionary (FreeRDP Release). As a workaround, disable serial port redirection in RDP client configurations if it is not operationally required. Additionally, restrict network access to FreeRDP services so clients only connect to trusted, known-good RDP servers. Red Hat has issued multiple errata addressing this CVE across RHEL 7 through 10, including RHSA-2026:6340 (RHEL 9), RHSA-2026:6918 (RHEL 8), RHSA-2026:6799 (RHEL 10), and others (Red Hat Bugzilla). Downstream distributions including openSUSE, Ubuntu, Fedora, AlmaLinux, Rocky Linux, Amazon Linux 2, Mageia, and Debian have also released updated packages.
The vulnerability was discovered and reported by researcher ehdgks0627, who performed code review and testing that uncovered this and eight other medium-severity CVEs addressed in the FreeRDP 3.20.1 release (FreeRDP Release). The FreeRDP maintainer (akallabeth) acknowledged the findings and credited the reporter in the release notes. The vulnerability received routine coverage from Linux security news aggregators and was picked up by Tenable (Nessus), Qualys, and other scanner vendors shortly after disclosure. No significant social media controversy or broader industry debate has been observed around this specific CVE.
Fix availability across major Linux distributions and their releases.
bookworm
freerdp2
sid
freerdp3: 3.20.2+dfsg-1
trixie
freerdp3: 3.15.0+dfsg-2.1+deb13u1
bionic (esm-apps)
freerdp
bionic (esm-infra)
freerdp2
devel
freerdp3: 3.20.2+dfsg-1
focal (esm-infra)
freerdp2
jammy
freerdp2
noble
freerdp3: 3.5.1+dfsg1-0ubuntu1.4
noble (esm-apps)
freerdp2
questing
freerdp3: 3.16.0+dfsg-2ubuntu0.3
RHEL 8
:appstream:freerdp-2:2.11.7-6.el8_10.src
RHEL 9
:appstream:freerdp-2:2.4.1-3.el9_0.4.src
RHEL 10
freerdp-2:3.10.3-3.el10_0.5.src
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."