# CVE-2026-109950: FreeRDP heap out-of-bounds read in RD Gateway message handling

Source: https://junglewise.ai/threats/cve-2026-109950-freerdp-from-3-0-0-before-3-32-0-contains-a-heap-out-of-bounds  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-13. Updated: 2026-10-16  
License: CC BY 4.0 with a link back

CVE-2026-109950 · Severity: medium · CVSS 4.3 · Published 2026-10-13

FreeRDP is a remote desktop protocol client library used to connect to Windows systems and RD Gateways. A malicious or compromised RD Gateway can send specially crafted consent or service messages that cause the FreeRDP client to read memory beyond its allocated buffer, crashing the client and denying service to users attempting to connect through that gateway.

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-109950 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-109950 being exploited in the wild.

**How severe is CVE-2026-109950?** Medium severity, with a CVSS score of 4.3, published 13 October 2026.

**Which products and versions are affected?** FreeRDP Project FreeRDP 3.0.0 through 3.31.1.

**Is there a fix for CVE-2026-109950?** Yes: fixed in 3.32.0. Until then: Use the NDR string's validated ActualCount as the authoritative length passed to gateway message callbacks, or reject messages where MsgBytes does not equal ActualCount multiplied by sizeof(WCHAR).</anigation>
<parameter name="timeline">[{"kind": "advisory", "at": "2026-09-29"}, {"kind": "disclosed", "at": "2026-10-13"}] Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-109950 attacked?** It is attacked over the network, in a software library.

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

Use the NDR string's validated ActualCount as the authoritative length passed to gateway message callbacks, or reject messages where MsgBytes does not equal ActualCount multiplied by sizeof(WCHAR).</anigation>
<parameter name="timeline">[{"kind": "advisory", "at": "2026-09-29"}, {"kind": "disclosed", "at": "2026-10-13"}]

## Technical details

The vulnerability exists in FreeRDP's TSG (Terminal Server Gateway) packet parsing code where MsgBytes field is not properly validated against the NDR string's ActualCount. An attacker controlling the RD Gateway can send a message with a much larger MsgBytes than the actual string content, causing the UTF-8 conversion routine to read past the received stream allocation. The vulnerability requires network access to the gateway and affects versions 3.0.0 through 3.31.1.

## Affected products

- FreeRDP Project FreeRDP 3.0.0 through 3.31.1

## References

- [https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-xf45-j844-588v](https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-xf45-j844-588v)
- [https://www.vulncheck.com/advisories/freerdp-3.0.0-before-3.32.0-heap-out-of-bounds-read-via-rd-gateway-messages](https://www.vulncheck.com/advisories/freerdp-3.0.0-before-3.32.0-heap-out-of-bounds-read-via-rd-gateway-messages)

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