# CVE-2026-121406: FreeRDP client assertion abort in RDPGFX ZGFX payload handling

Source: https://junglewise.ai/threats/cve-2026-121406-freerdp-before-3-32-2-allows-a-client-assertion-abort-because  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-11-03. Updated: 2026-11-03  
License: CC BY 4.0 with a link back

CVE-2026-121406 · Severity: medium · CVSS 4.3 · Published 2026-11-03

FreeRDP is a Remote Desktop Protocol client that allows users to connect to remote computers. A malicious RDP server can send a specially crafted ZGFX payload that causes the FreeRDP client to crash with an assertion failure, denying service to the user. The vulnerability affects FreeRDP versions before 3.32.2.

Technologies: [FreeRDP](https://junglewise.ai/threats/technologies/freerdp). Vendors: [FreeRDP](https://junglewise.ai/threats/vendors/freerdp).

## Quick answers

**Is CVE-2026-121406 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-121406 being exploited in the wild.

**How severe is CVE-2026-121406?** Medium severity, with a CVSS score of 4.3, published 3 November 2026.

**Which products and versions are affected?** FreeRDP before 3.32.2.

**Is there a fix for CVE-2026-121406?** Yes: fixed in 3.32.2. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-121406 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-121406?** Check whether you run FreeRDP at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- Fixed in 3.32.2

## Technical details

The rdpgfx_on_data_received function in FreeRDP checks only for negative status codes from zgfx_decompress, allowing a zero-output successful decompression (which returns a null pointer) to proceed to Stream_StaticConstInit. This function contains a WINPR_ASSERT(buffer) that aborts when buffer is null, triggered when verbose WinPR assertions are enabled (the CMake default). An unauthenticated attacker can send a three-byte ZGFX payload (E0 20 00) or seven-byte empty multipart payload after session activation to trigger client termination.

## Affected products

- FreeRDP FreeRDP before 3.32.2

## Timeline

- 2026-10-19: disclosed: GitHub Security Advisory GHSA-2c9x-4gr7-hrwx published
- 2026-11-03: advisory: NVD and VulnCheck advisories published

## References

- [https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-2c9x-4gr7-hrwx](https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-2c9x-4gr7-hrwx)
- [https://www.vulncheck.com/advisories/freerdp-before-3.32.2-client-denial-of-service-via-zero-output-zgfx-payload](https://www.vulncheck.com/advisories/freerdp-before-3.32.2-client-denial-of-service-via-zero-output-zgfx-payload)

## Related threats

- [FreeRDP heap use-after-free in brush cache](https://junglewise.ai/threats/cve-2026-125394-freerdp-before-3-33-0-contains-a-heap-use-after-free)
- [FreeRDP heap buffer overflow in RD Gateway RPC client](https://junglewise.ai/threats/cve-2026-121964-freerdp-before-3-32-2-contains-a-heap-based-buffer-overflow-in)
- [FreeRDP use-after-free in dynamic rdpsnd channel](https://junglewise.ai/threats/cve-2026-121963-freerdp-before-3-32-2-contains-a-use-after-free-vulnerability-in)
- [FreeRDP denial of service in NLA shadow server via malformed TSRequest](https://junglewise.ai/threats/cve-2026-121960-freerdp-before-3-32-2-contains-a-denial-of-service-vulnerability)
- [FreeRDP heap out-of-bounds write in RDPGFX HashTable_GetKeys](https://junglewise.ai/threats/cve-2026-121958-freerdp-through-3-32-1-has-a-heap-out-of-bounds-write-in-the)
