# CVE-2026-121397: FreeRDP heap buffer over-read in PNG encoding

Source: https://junglewise.ai/threats/cve-2026-121397-freerdp-before-3-32-2-contains-a-heap-buffer-over-read  
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-121397 · Severity: medium · CVSS 4.3 · Published 2026-11-03

FreeRDP is a client library for Remote Desktop Protocol that enables users to connect to Windows systems remotely. A malicious RDP server can exploit a heap buffer over-read vulnerability in the clipboard image conversion code to leak sensitive data from the client's memory, potentially exposing authentication tokens, passwords, or other confidential information.

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

## Quick answers

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

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

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

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

**Am I affected by CVE-2026-121397?** Check whether you run FreeRDP Project 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 vulnerability is a heap buffer over-read in save_png_to_buffer() within winpr/libwinpr/utils/image.c. When converting 16 bpp DIB clipboard data to PNG format, the code incorrectly selects PNG_COLOR_TYPE_RGB (which expects 3 bytes per pixel) for a 16 bpp image that only provides 2 bytes per pixel, causing libpng to read past the row allocation boundary. A malicious RDP server can trigger this by offering CF_DIB BI_BITFIELDS clipboard data, leading to disclosure of heap bytes embedded in the PNG sent to local clipboard consumers.

## Affected products

- FreeRDP Project FreeRDP before 3.32.2

## Timeline

- 2026-10-19: disclosed
- 2026-11-03: advisory

## References

- [https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-x7w3-32ch-x2jq](https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-x7w3-32ch-x2jq)
- [https://www.vulncheck.com/advisories/freerdp-before-3.32.2-heap-over-read-via-winpr-save-png-to-buffer](https://www.vulncheck.com/advisories/freerdp-before-3.32.2-heap-over-read-via-winpr-save-png-to-buffer)

## Related threats

- [FreeRDP heap buffer overflow in transport_default_read_pdu](https://junglewise.ai/threats/cve-2026-121962-freerdp-before-3-32-2-contains-a-heap-buffer-overflow-in)
- [FreeRDP use-after-free in DRDYNVC tracker race condition](https://junglewise.ai/threats/cve-2026-121961-freerdp-before-3-32-2-contains-a-use-after-free-vulnerability-in)
- [FreeRDP infinite loop in WebSocket frame handling](https://junglewise.ai/threats/cve-2026-121959-freerdp-before-3-32-2-contains-an-infinite-loop-vulnerability-in)
- [FreeRDP server denial of service in RDP peer input parsing](https://junglewise.ai/threats/cve-2026-121951-freerdp-3-0-0-before-3-32-2-server-side-rdp-peer-input-parsing)
- [FreeRDP NULL pointer dereference in RDPGFX ResetGraphics](https://junglewise.ai/threats/cve-2026-121402-freerdp-before-3-32-2-contains-a-null-pointer-dereference)
