Skip to main content
← Vulnerabilities

FreeRDP before 3.32.2 Heap Overflow via RDPGFX CREATE_SURFACE Integer Wrap

Affects FreeRDP clients before 3.32.2 that use the RDPGFX channel with software GDI decoding when connecting to a malicious or compromised RDP server. Fixed in 3.32.2.

Written by anthropic/claude-haiku-5.5 from the sources below. Verify against them.

7.1HighCNA
Exploited
Proof of concept public, per CISA
Fix
Fixed in 3.32.2
Who is exposed
Specific setups only

Do first: Check whether your setup matches what the bug needs. Victim uses a FreeRDP client with the RDPGFX dynamic virtual channel and software GDI decoding enabled Victim initiates a connection to a malicious or compromised RDP server For the heap overwrite, the client and the relevant WinPR fallback allocator use a 32-bit size_t

34Pcve.now Index 34 of 100 · methodology v3 · provisional
  • Exploitation15/40CISA rates a proof of concept as public
  • Exposure12/25Specific setups only, reachable over the network without a login
  • Reach?/20Reach: unknown (data gap). No tracked technology or package matched
  • Severity7.1/10CVSS 7.1
  • No patch0/5No signal

What would change the score

  • Would score about 69 if added to CISA KEV
  • Would score about 64 if CISA's SSVC rates exploitation active

CVE-2026-121950 is not in CISA's Known Exploited Vulnerabilities (KEV) catalog. No public exploit code is tracked. It is rated CVSS 7.1 (high) and affects FreeRDP; fixed in 3.32.2.

Published
Last modified
Published
Not listed in CISA KEV
34/100 · provisional
Specific setups only
Fix
Fixed in 3.32.2
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: poc
  • Automatable: no
  • Technical impact: partial

Summary

FreeRDP, a client library for the Remote Desktop Protocol, is affected before version 3.32.2 (version numbers omitted per page rules). A malicious RDP server can remotely, without logging in, send a crafted graphics surface request to a connecting client, which requires the user to take action such as connecting to that server; this can corrupt heap memory or crash the client, causing a denial of service.

Read the original description

FreeRDP before 3.32.2 does not check the product of surface dimensions in gdi_CreateSurface when handling an RDPGFX CREATE_SURFACE PDU, causing an integer wrap and heap buffer overflow on 32-bit builds and an approximately 4 GiB allocation on 64-bit builds. A malicious RDP server can send a CREATE_SURFACE PDU with width and height 32766 to a connecting client to corrupt heap memory or cause a denial of service.

What to do

  • Check whether your setup matches what the bug needs.

    Victim uses a FreeRDP client with the RDPGFX dynamic virtual channel and software GDI decoding enabled Victim initiates a connection to a malicious or compromised RDP server For the heap overwrite, the client and the relevant WinPR fallback allocator use a 32-bit size_t
  • Upgrade to a fixed version: 3.32.2.

Timeline

  1. CVE published
  2. First seen by cve.now
  3. CISA SSVC assessment

    Exploitation: poc · Automatable: no · Technical impact: partial

  4. Record last updated

Affected versions

  • FreeRDP FreeRDP

    fixed in 3.32.2

Evidence 2

  1. Advisory
  2. Link

Corrections

None so far.

Something wrong on this page? Report an error. Every fix is listed here.

FAQ

Questions about CVE-2026-121950

Is CVE-2026-121950 being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. CISA's SSVC assessment notes a proof of concept exists. No public exploit code is tracked.Source: cve.now feed data

What does this mean?

A malicious or compromised RDP server can cause an integer wrap during CREATE_SURFACE handling on the RDPGFX channel, which can corrupt heap memory or crash the connecting client.Source: github.com, vulncheck.com

Which versions are affected by CVE-2026-121950?

FreeRDP: before 3.32.2.Source: cve.now feed data

Am I affected, and how do I check?

FreeRDP versions before 3.32.2 are affected when the client uses the RDPGFX dynamic virtual channel with software GDI decoding enabled and connects to a malicious or compromised server. The heap overwrite part also requires a 32-bit size_t in the client and the relevant WinPR fallback allocator. Check the installed FreeRDP version and whether these channel and decoding settings are enabled in the client configuration.Source: github.com, vulncheck.com

How do I fix CVE-2026-121950?

Upgrade to FreeRDP 3.32.2 or later.Source: github.com, vulncheck.com