Skip to main content

FreeRDP CVE-2026-121390

| EUVDEUVD-2026-115922 MEDIUM
Reachable Assertion (CWE-617)
2026-11-03 VulnCheck GHSA-rvhh-wcgr-9gqg
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 selects malicious ARM gateway
  2. Exploit
    Gateway returns JSON omitting redirectedServerCert
  3. Execution
    Null buffer reaches WINPR_ASSERT in stream initializer
  4. Impact
    FreeRDP client process aborts (SIGABRT)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V16 - Security Logging and Error Handling Reachable assertion handling
Exploitation Conditions

Exploitation requires that the FreeRDP client be built with the optional WITH_AAD=ON flag (the PoC also uses WITH_WINPR_JSON=ON); the advisory states the default AAD-off client does not compile the ARM gateway route and is therefore unaffected. The user must select/configure and connect to a malicious or malformed ARM gateway (e.g. /gateway:type:arm,...), which then returns an HTTP 200 JSON ARM connection response that either omits the redirectedServerCert key entirely or supplies it as a non-string value. Limiting factors that reduce realistic risk: the non-default build requirement, the passive user interaction of pointing the client at the attacker gateway (UI:P), and an impact confined to client-side availability (crash) with no confidentiality or integrity effect.

Impact

All signals converge on a genuinely moderate, availability-only issue rather than a top-priority emergency. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N, base 5.3) shows network reach and low complexity with no privileges, but passive user interaction (UI:P) and impact limited to low availability of the vulnerable system (VA:L) with zero confidentiality or integrity effect. The FreeRDP/VulnCheck advisory explicitly confirms the demonstrated impact is client-side availability loss only - no authentication bypass, data disclosure, or data modification. The vuln.today decision label is 'this_month' (not act_now/emergency), which is consistent with a non-emergency DoS. A full working loopback reproducer is embedded in the advisory, which raises the practical exploitation floor, but it crashes only the client process the user themselves pointed at a malicious gateway. No CISA KEV listing is present, so this is not confirmed actively exploited; no EPSS score was provided in the input, so probabilistic exploitation likelihood cannot be compared here - STATE EXPLICITLY: EPSS is missing from the data. A critical scoping constraint that lowers real-world risk: the flaw only exists when the client is compiled WITH_AAD=ON, and the advisory states the audited default AAD-off client does not even compile the ARM gateway route. Net: this is a real, source-confirmed bug worth patching on a normal cadence, not a high-CVSS-but-illusory finding, but it is also not a widespread-exploitation priority.

Exploit ScenarioDerived

A user of an AAD-enabled FreeRDP client (WITH_AAD=ON) is induced to connect through an attacker-controlled or malformed ARM gateway. The gateway returns an HTTP 200 JSON response that omits (or sets to a non-string) the redirectedServerCert field, causing the parser to pass a null buffer into the certificate parser and trip an assertion that aborts the client (SIGABRT). A complete loopback-only reproducer harness is embedded in the advisory, so the crash path is publicly demonstrated, though only against a local fake gateway.

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 built with the optional WITH_AAD=ON flag can be aborted by a crafted ARM gateway response: an HTTP 200 JSON reply that omits the redirectedServerCert field (or supplies it as a non-string) drives a NULL buffer into the target-certificate parser, tripping a WINPR_ASSERT in the stream initializer and terminating the client with SIGABRT. Only non-default AAD-enabled builds (>= 3.0.0 through 3.32.1) that also link WinPR JSON are affected; the advisory states the default AAD-off build does not compile the ARM gateway route and is unaffected. Impact is client-side availability loss only with no confidentiality or integrity effect, and exploitation requires the user to point the client at a malicious or malformed gateway. A public proof-of-concept fake-gateway reproducer is included in the vendor advisory, but it is a loopback-only test harness rather than general-purpose exploit code, and no confirmed active exploitation or KEV listing exists; the vendor addressed the flaw in 3.32.2.

RemediationAI

Upgrade FreeRDP to 3.32.2 or later, the vendor-listed fix for the affected 3.0.0-3.32.1 range, using the release and advisory at https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-hqf8-95c7-6r92 and https://www.vulncheck.com/advisories/freerdp-before-3.32.2-null-pointer-crash-via-arm-gateway-response. If an immediate upgrade is not possible, rebuilding without WITH_AAD=ON removes the ARM gateway parsing route entirely and eliminates the exposure, at the cost of losing AAD/ARM gateway connectivity for that client build; sites that genuinely need AAD gateway support should treat 3.32.2 as the only complete fix described in the available sources. Because the trigger is a gateway response the user chooses to connect to, restricting client configurations to trusted ARM gateway endpoints (fixed /gateway:type:arm targets rather than user-supplied addresses) limits exposure but does not repair the parser, and users should be aware that connecting to a malformed or attacker-controlled gateway can terminate the client session.

Affected VersionsENISA

FreeRDP 3.0.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 defect lives in FreeRDP's Azure Active Directory / ARM gateway client path, which is compiled only when WITH_AAD=ON (the reproducer also requires WITH_WINPR_JSON=ON). After AAD discovery over HTTPS on port 443 and a request to the ARM /api/arm/v2/connections endpoint, arm_pick_base64Utf16Field() in libfreerdp/core/gateway/arm.c treats a missing or non-string redirectedServerCert as a successful optional-field lookup while leaving its output pointer NULL; arm_fill_gateway_parameters() then hands that NULL buffer to rdp_redirection_read_target_cert(), whose stream initializer contains WINPR_ASSERT(buffer) in winpr/libwinpr/utils/stream.c, so the assertion fires and aborts the process. This is CWE-617 (Reachable Assertion): the root cause is an unchecked optional-field contract between a JSON parser and its caller rather than memory corruption, so the demonstrated consequence is a deterministic client crash, not code execution. The advisory's reproducer is a Python TLS fake gateway binding loopback ports 443 and 3561 with missing-key, non-string (integer 42) and valid-string ("AAAA") control payloads, confirming that the missing/non-string cases abort the client while the valid string does not. CPE cpe:2.3:a:freerdp:freerdp identifies the affected package range 3.0.0 through 3.32.1.

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

Attacker-controlled gateway reached over the network with no client credentials (PR:N), but the user must choose that gateway (UI:R), and the only effect is a recoverable client crash (A:L; C:N/I:N).

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 3.0.0 before 3.32.2 built with WITH_AAD=ON contains a reachable assertion because its ARM gateway response parser accepts a missing or non-string redirectedServerCert field and passes a null buffer to the certificate parser. A malicious or malformed user-selected gateway can return such a response to abort the client process.

Threat Intelligence Overview

Prevalence
Low
FreeRDP is common, but the vulnerable WITH_AAD=ON build is non-default and optional
Data Quality
3 sources
Confidence: Low

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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

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

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