---
id: CVE-2026-121953
title: FreeRDP before 3.32.2 Use-After-Free via rdpgfx Dynamic Virtual Channel Close
summary: >-
  FreeRDP before 3.32.2 has a use-after-free in the client's rdpgfx dynamic
  virtual channel: a duplicate-name channel with a new ChannelId overwrites the
  listener's single callback slot, which rdpgfx_on_close frees without clearing.
  A mali…
severity: critical
cvss: 9.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-416
vendor: FreeRDP
product: FreeRDP
affected:
  - FreeRDP < 3.32.2
ssvc:
  exploitation: poc
  automatable: 'yes'
  technicalImpact: total
  timestamp: '2026-11-04T18:37:48.291764Z'
exploitAvailable: true
published: '2026-11-04'
updated: '2026-11-04'
sourceUpdated: '2026-11-04T18:38:57.583Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-121953'
references:
  - url: 'https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-6wqx-rv3q-vcxp'
    label: GitHub Security Advisory (GHSA-6wqx-rv3q-vcxp)
  - url: >-
      https://www.vulncheck.com/advisories/freerdp-before-3.32.2-use-after-free-via-rdpgfx-dynamic-virtual-channel-close
    label: >-
      VulnCheck Advisory: FreeRDP before 3.32.2 Use-After-Free via rdpgfx
      Dynamic Virtual Channel Close
tags:
  - cve.org
  - exploit-available
ingestedAt: '2026-11-05T21:36:00.492Z'
---

## Overview

FreeRDP before 3.32.2 has a use-after-free in the client's rdpgfx dynamic virtual channel: a duplicate-name channel with a new ChannelId overwrites the listener's single callback slot, which rdpgfx_on_close frees without clearing. A malicious RDP server can open and close such a channel, then send a PDU on the original channel to crash the client or potentially execute code.

## Affected

- `FreeRDP < 3.32.2`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
