Skip to main content

FreeRDP EUVDEUVD-2026-115933

| CVE-2026-121401 MEDIUM
NULL Pointer Dereference (CWE-476)
2026-11-03 VulnCheck GHSA-wvcr-9h9j-5rq9
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    User initiates FreeRDP connection to malicious gateway
  2. Delivery
    Attacker-controlled gateway completes TLS/WebSocket upgrade
  3. Exploit
    Gateway sends PKT_TYPE_EXTENDED_AUTH_MSG before tunnel auth
  4. Execution
    rdg_process_packet dispatches without checking rdg->auth context
  5. Persist
    NULL pointer passed to credssp_auth_is_complete
  6. Impact
    FreeRDP client process crashes

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the FreeRDP client user to connect to a malicious or compromised RD Gateway; the attacker does not reach the client directly. The gateway must send PKT_TYPE_EXTENDED_AUTH_MSG (type 0x0003) after the HTTP/WebSocket upgrade but before tunnel authentication completes. The default gateway configuration (GatewayHttpExtAuthSspiNtlm=FALSE) is vulnerable because this path frees the HTTP authentication context before tunnel packets arrive, leaving rdg->auth as NULL when rdg_process_packet dispatches the extended-auth packet. Enabling GatewayHttpExtAuthSspiNtlm=TRUE (extauth-sspi-ntlm mode) changes the code path and causes the trigger to fail negotiation without a crash, constituting a non-patch mitigation. The flaw affects the FreeRDP client process only; no server-side exploitation path exists. No special client configuration is required beyond the user initiating a gateway-mediated connection.

Impact

The CVSS 4.0 score of 5.3 (Medium) accurately reflects a pure client-side availability impact with no confidentiality or integrity effect. No CISA KEV listing is present in the input data, and no EPSS score was provided, so exploitation frequency cannot be quantified from the supplied signals. The decision label is 'this_month,' indicating a measured remediation priority rather than emergency response. A public PoC reference with complete C source code exists in GHSA-8rjm-m7xg-mg6m and the advisory describes verified crash reproduction (exit 134 assertion-enabled, exit 139 assertion-free), which lowers the skill bar for exploitation. However, the attack model requires the victim client to initiate a connection to a malicious or attacker-controlled RD Gateway - the attacker does not reach out to arbitrary clients. This server-controlled trigger substantially limits opportunistic or automated mass exploitation compared to a browser or listener vector. Default configurations (GatewayHttpExtAuthSspiNtlm=FALSE) are vulnerable; enabling extauth-sspi-ntlm changes the code path and prevents the crash, providing a non-patch mitigation. The impact ceiling is a crashed FreeRDP client process; no memory corruption or data access was demonstrated by the advisory. Overall this is a real but bounded risk: straightforward to exploit against clients that connect to attacker-controlled gateways, but not mass-exploitable without that gateway foothold.

Exploit ScenarioDerived

An attacker who operates or has compromised an RD Gateway sends a 14-byte PKT_TYPE_EXTENDED_AUTH_MSG packet (type 0x0003) immediately after the HTTP/WebSocket upgrade, before tunnel authentication completes. Because rdg_process_packet does not verify the negotiated mode or rdg->auth context, a NULL pointer reaches credssp_auth_is_complete, crashing the FreeRDP client process. A public PoC reference with complete C source code is published in GHSA-8rjm-m7xg-mg6m; the advisory reports verified crash reproduction with exit codes 134 and 139 depending on build flags.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 03, 2026

FreeRDP clients up to and including 3.32.1 can be crashed by a malicious or compromised RD Gateway that sends a PKT_TYPE_EXTENDED_AUTH_MSG (type 0x0003) immediately after the HTTP/WebSocket upgrade, before tunnel authentication completes. In the default configuration (GatewayHttpExtAuthSspiNtlm=FALSE) the HTTP authentication context is freed before tunnel packets are processed, so rdg_process_packet dispatches the extended-auth packet with rdg->auth NULL and a zero-length blob reaches credssp_auth_is_complete(NULL), producing a null-pointer dereference; the advisory documents an abort (exit 134) on an assertions-enabled build and a null-pointer read crash (exit 139) on an assertions-off build, with no memory-corruption or data-access effect demonstrated. The attacker does not reach the client directly: the victim must initiate a connection to the hostile gateway (CVSS 4.0 AV:N/PR:N/UI:P, our assessed CVSS 3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L, availability-only impact). A public proof-of-concept reproduction is published in the GitHub security advisory GHSA-8rjm-m7xg-mg6m and has been independently re-verified to crash affected clients; the issue is not in CISA KEV and no in-the-wild exploitation is reported, and the vulnerability is fixed in 3.32.2.

RemediationAI

Upgrade FreeRDP to 3.32.2, which is the vendor-released patch (package c/FreeRDP: vulnerable <= 3.32.1, fixed in 3.32.2) and closes the missing mode/auth checks in rdg_process_packet; see GHSA-8rjm-m7xg-mg6m for the advisory. Where an immediate upgrade is not possible, the documented non-patch mitigation is to enable GatewayHttpExtAuthSspiNtlm=TRUE (extauth-sspi-ntlm mode), which changes the code path so the crafted extended-auth packet fails negotiation instead of dereferencing a NULL context - the trade-off is that HTTP-layer extended authentication then runs through NTLM SSPI rather than the default path, so gateway compatibility and authentication behaviour must be re-validated before rolling it out. Because the trigger is a hostile or compromised RD Gateway rather than a directly reachable client service, also restrict client-initiated gateway connections to trusted, administratively controlled gateways (for example via gateway allow-lists or network egress policy) as a compensating control, understanding that this does not fix the underlying defect and that an attacker who already controls a gateway the user is permitted to reach can still crash the client. The impact is limited to client availability (no confidentiality or integrity effect was demonstrated), and the issue is not listed in CISA KEV and not reported as exploited in the wild.

Affected VersionsENISA

FreeRDP 0 <3.32.2

Affected Packages

euvd freerdp fix: 3.32.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw sits in FreeRDP's RD Gateway (RDG) transport, which tunnels RDP over an HTTP or WebSocket connection to a gateway and then exchanges size-prefixed RDG control packets (handshake, tunnel response, tunnel auth, channel response, extended auth). The default code path with GatewayHttpExtAuthSspiNtlm=FALSE performs HTTP-layer authentication and then frees its HTTP authentication context before tunnel packets arrive; rdg_process_packet fails to check either the negotiated mode or whether rdg->auth is still present and dispatches PKT_TYPE_EXTENDED_AUTH_MSG anyway, so a zero-length auth blob reaches credssp_auth_is_complete(NULL) - a CWE-476 null-pointer dereference that the advisory also classes as CWE-617 (reachable assertion) because assertions-enabled builds abort at the same point. The archived full-client test used a local fake TLS RD Gateway and the exact 14-byte packet 03 00 00 00 0e 00 00 00 00 00 00 00 00 00; the same WebSocket upgrade without that packet did not crash during the bounded test, and enabling extauth-sspi-ntlm made the trigger fail negotiation without a crash. The decisive source was individually inspected in releases 3.0.0, 3.20.0, 3.28.0, 3.31.1, 3.32.0 and 3.32.1, with 3.32.1 byte-identical to the audited revision at the RDG code; intermediate snapshots and the first affected release were not established, and a 3.32.1 release binary was not separately executed.

Know when Freerdp gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Client must initiate connection to gateway (UI:R); attacker controls server side requiring no client privileges; only a client process crash results, so A:L with no C or I impact.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Nov 03, 2026 - 16:17 EUVD

DescriptionCVE.org

FreeRDP before 3.32.2 contains a denial of service vulnerability where rdg_process_packet dispatches a PKT_TYPE_EXTENDED_AUTH_MSG without verifying negotiated mode or auth context. A malicious or compromised RD Gateway can send the extended-auth packet before tunnel authentication, triggering a null-pointer dereference that crashes the client.

Threat Intelligence Overview

Prevalence
Medium
widely used open-source RDP client across Linux and VDI deployments
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org Vulnrichment GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2026-25997 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_clipboard_format_equal before 3.23.0. Clipboard format comparison uses freed memory. Fifth

CVE-2026-25953 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Surface-to-window update triggers memory corrupti

CVE-2026-25952 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_SetWindowMinMaxInfo before version 3.23.0. X11 client window management triggers memory cor

CVE-2026-25959 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_cliprdr_provide_data clipboard handling before 3.23.0. Clipboard data exchange triggers mem

CVE-2026-22857 CRITICAL POC
9.8 Jan 14

FreeRDP IRP thread handler has a use-after-free where the IRP is freed by Complete() then accessed on the error path. Fi

CVE-2026-22854 CRITICAL POC
9.8 Jan 14

FreeRDP drive read heap overflow when server-controlled read length exceeds IRP output buffer. Fixed in 3.20.1. PoC avai

CVE-2026-22852 CRITICAL POC
9.8 Jan 14

FreeRDP client before 3.20.1 has a heap buffer overflow in AUDIN format processing. A malicious RDP server can corrupt m

CVE-2026-25955 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Different code path from CVE-2026-25953. PoC and

CVE-2024-32041 CRITICAL POC
9.8 Apr 22

FreeRDP is a free implementation of the Remote Desktop Protocol. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2023-40574 CRITICAL POC
9.8 Aug 31

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical

CVE-2023-40569 CRITICAL POC
9.8 Aug 31

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical

CVE-2023-40567 CRITICAL POC
9.8 Aug 31

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy