CVE-2026-111378 Overview
CVE-2026-111378 is an uncontrolled resource consumption vulnerability in FreeRDP, an open-source implementation of the Remote Desktop Protocol (RDP). The flaw resides in the parse_nla_mode_pdu function and affects FreeRDP versions 3.0.0 through 3.31.x. An unauthenticated remote attacker can complete the Transport Layer Security (TLS) handshake and then stream bytes that do not begin with the Distinguished Encoding Rules (DER) SEQUENCE tag 0x30. This causes the receive buffer to grow without bounds before Network Level Authentication (NLA) completes, exhausting server memory and producing a denial of service.
Critical Impact
Unauthenticated attackers can exhaust memory on any FreeRDP-based server, degrading or disabling remote desktop services without credentials or user interaction.
Affected Products
- FreeRDP 3.0.0 through 3.31.x
- Applications and distributions bundling vulnerable FreeRDP server libraries
- Remote desktop gateways and thin-client platforms built on FreeRDP
Discovery Timeline
- 2026-10-16 - CVE-2026-111378 published to the National Vulnerability Database (NVD)
- 2026-10-20 - Last updated in NVD database
Technical Details for CVE-2026-111378
Vulnerability Analysis
FreeRDP implements NLA to authenticate RDP clients before session establishment. The parse_nla_mode_pdu routine reads incoming bytes after the TLS handshake and expects an Abstract Syntax Notation One (ASN.1) structure encoded with DER. A valid NLA frame begins with the SEQUENCE tag 0x30. The parser accumulates bytes into a receive buffer while it waits for a complete, well-formed message.
The routine does not enforce an upper bound on buffered data when the leading byte is not 0x30. An attacker who completes TLS can send a continuous stream of arbitrary bytes. The server appends each byte to the receive buffer indefinitely, driving heap usage until the process is terminated by the operating system. The weakness is tracked under CWE-400: Uncontrolled Resource Consumption.
Root Cause
The parser lacks a sanity check on both the leading byte and the maximum pre-authentication buffer size. Because validation occurs only after a candidate DER SEQUENCE is detected, bytes that never form a valid header are retained rather than discarded or rejected.
Attack Vector
Exploitation requires network reachability to a FreeRDP server port, typically TCP 3389. The attacker establishes a TCP connection, completes the TLS handshake, and transmits non-0x30 bytes at sustained throughput. No credentials, user interaction, or prior session are required. See the VulnCheck Advisory on FreeRDP for a detailed walkthrough.
// No verified proof-of-concept code has been published.
// Refer to the GitHub Security Advisory and VulnCheck advisory
// for technical details on the parse_nla_mode_pdu buffering flaw.
Detection Methods for CVE-2026-111378
Indicators of Compromise
- Sudden, sustained growth in resident memory of FreeRDP server processes with no corresponding session establishment
- TLS-complete RDP connections that never transition to NLA authentication and remain open for extended periods
- Repeated inbound connections from the same source address followed by abnormal termination of the FreeRDP service
Detection Strategies
- Inspect packet captures on TCP 3389 for TLS-encrypted sessions in which the first post-handshake application byte is not 0x30
- Correlate FreeRDP process crashes or out-of-memory kills with preceding inbound RDP connections in system logs
- Baseline normal pre-authentication byte counts per RDP session and alert on connections that exceed the baseline before NLA completes
Monitoring Recommendations
- Collect host telemetry for memory pressure, Linux oom-killer events, and FreeRDP service restarts
- Forward RDP connection logs and network flow records to a centralized analytics platform for correlation
- Rate-limit and monitor concurrent connections per source IP against RDP endpoints
How to Mitigate CVE-2026-111378
Immediate Actions Required
- Upgrade FreeRDP to version 3.32.0 or later on all servers and bundled applications
- Restrict exposure of RDP services to trusted networks or Virtual Private Network (VPN) users only
- Enforce connection and bandwidth limits at perimeter firewalls to blunt sustained byte-streaming attacks
Patch Information
The FreeRDP maintainers released a fix in version 3.32.0. Review the GitHub Security Advisory GHSA-qpfh-m9w6-xf2x for the patch commit and upgrade guidance. Distribution maintainers should rebuild downstream packages against the patched release.
Workarounds
- Place FreeRDP servers behind an RDP gateway or reverse proxy that enforces authentication before forwarding traffic
- Apply operating system resource limits such as cgroups memory ceilings to contain runaway FreeRDP processes
- Disable RDP services on hosts that do not require remote desktop access until patching is complete
# Verify the installed FreeRDP version
xfreerdp --version
# Example: cap FreeRDP memory usage with systemd
# Add to the service unit override and reload
sudo systemctl edit freerdp-server.service
# [Service]
# MemoryMax=512M
# TasksMax=200
sudo systemctl daemon-reload
sudo systemctl restart freerdp-server.service
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

