---
id: CVE-2026-121958
title: FreeRDP through 3.32.1 Heap Out-of-Bounds Write via RDPGFX HashTable_GetKeys
summary: >-
  FreeRDP through 3.32.1 has a heap out-of-bounds write in the RDPGFX client
  because the delete_surface callback truncates surface hash keys to 16 bits,
  leaving the surface table inconsistent so HashTable_GetKeys writes past its
  allocated …
severity: high
cvss: 8.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-122
vendor: FreeRDP
product: FreeRDP
affected:
  - FreeRDP <= 3.32.1
ssvc:
  exploitation: poc
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-11-04T18:28:44.450541Z'
exploitAvailable: true
published: '2026-11-04'
updated: '2026-11-04'
sourceUpdated: '2026-11-04T18:29:19.483Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-121958'
references:
  - url: 'https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-m59q-wm7v-mp57'
    label: GitHub Security Advisory (GHSA-m59q-wm7v-mp57)
  - url: >-
      https://www.vulncheck.com/advisories/freerdp-through-3.32.1-heap-out-of-bounds-write-via-rdpgfx-hashtable-getkeys
    label: >-
      VulnCheck Advisory: FreeRDP through 3.32.1 Heap Out-of-Bounds Write via
      RDPGFX HashTable_GetKeys
tags:
  - cve.org
  - exploit-available
ingestedAt: '2026-11-05T21:36:00.489Z'
epss: 0.00303
epssPercentile: 0.23228
---

## Overview

FreeRDP through 3.32.1 has a heap out-of-bounds write in the RDPGFX client because the delete_surface callback truncates surface hash keys to 16 bits, leaving the surface table inconsistent so HashTable_GetKeys writes past its allocated key array. A malicious or man-in-the-middle RDP server can exploit this by creating surfaceId 0xFFFF, closing the RDPGFX channel, sending repeated DELETESURFACE PDUs, and then sending ENDFRAME or RESETGRAPHICS.

## Affected

- `FreeRDP <= 3.32.1`

## Remediation

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