# CVE-2026-121953: FreeRDP use-after-free in rdpgfx dynamic virtual channel

Source: https://junglewise.ai/threats/cve-2026-121953-freerdp-before-3-32-2-has-a-use-after-free-in-the-client-s  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-11-04. Updated: 2026-11-04  
License: CC BY 4.0 with a link back

CVE-2026-121953 · Severity: critical · CVSS 9.8 · Published 2026-11-04

FreeRDP is a remote desktop protocol client used to connect to Windows servers and RDP services. A malicious RDP server can trigger a use-after-free vulnerability in FreeRDP's graphics channel by creating duplicate channels with the same name but different identifiers, then closing one and sending data on the original. This can crash the client or potentially allow remote code execution.

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

## Quick answers

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

**How severe is CVE-2026-121953?** Critical severity, with a CVSS score of 9.8, published 4 November 2026.

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

**Is there a fix for CVE-2026-121953?** 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-121953 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-121953?** 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

A use-after-free in the rdpgfx dynamic virtual channel handler occurs when a malicious RDP server creates a second channel with a duplicate name but different ChannelId, overwriting the listener's callback slot. When the second channel is closed, the callback is freed without being cleared, leaving a dangling pointer. Subsequent PDUs on the original channel dereference the freed memory through an unchecked pointer. Attack requires a completed RDP handshake with an attacker-controlled server; no user interaction needed.

## Affected products

- FreeRDP FreeRDP before 3.32.2

## Timeline

- 2026-10-20: advisory: GitHub Security Advisory GHSA-6wqx-rv3q-vcxp published
- 2026-11-04: disclosed

## References

- [https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-6wqx-rv3q-vcxp](https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-6wqx-rv3q-vcxp)
- [https://www.vulncheck.com/advisories/freerdp-before-3.32.2-use-after-free-via-rdpgfx-dynamic-virtual-channel-close](https://www.vulncheck.com/advisories/freerdp-before-3.32.2-use-after-free-via-rdpgfx-dynamic-virtual-channel-close)

## 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)
