
PEACH
Un cadre d’isolation des locataires
CVE-2026-121964 is a heap-based buffer overflow vulnerability in FreeRDP's RD Gateway RPC client that allows a malicious or compromised RD Gateway to cause a client crash or potentially achieve arbitrary code execution. The flaw exists in the rpc_client_recv_fragment function, which writes BIND_ACK and ALTER_CONTEXT_RESP fragments into a persistent PDU stream using only a total-capacity check rather than a remaining-capacity check. All FreeRDP versions before 3.32.2 are affected; version 3.32.2 contains the fix. The vulnerability carries a CVSS v3.1 score of 7.5 (High) and a CVSS v4.0 score of 8.7 (High) (GitHub Advisory, FreeRDP Advisory).
The root cause is a heap-based buffer overflow (CWE-122) in libfreerdp/core/gateway/rpc_client.c. The BIND_ACK and ALTER_CONTEXT_RESP branch of rpc_client_recv_fragment calls Stream_EnsureCapacity(pdu->s, len), which only guarantees that the buffer's total allocated capacity is at least len — it does not account for the current write position within the stream. Because the persistent per-call stream pdu->s is not reset between fragments, a prior PTYPE_RESPONSE fragment with a mismatched alloc_hint and StubLength leaves the stream position at a non-zero offset (e.g., position 4055 in the PoC). A subsequent BIND_ACK write of len bytes at that offset then overruns the 4096-byte heap buffer allocated by rpc_pdu_new() by approximately 3904 bytes, with write length and content fully controlled by the attacker. Exploitation requires the victim FreeRDP client to be configured to use an RD Gateway (TSG path) and to connect to an attacker-controlled gateway, with certificate verification disabled or the attacker presenting an acceptable certificate (FreeRDP Advisory).
Successful exploitation causes a heap out-of-bounds write in the FreeRDP client process, with write length and content controlled by the attacker. The immediate, demonstrated impact is a client process crash (denial of service via abort/assertion failure or glibc heap corruption detection). The advisory notes that the memory corruption can serve as a starting point for arbitrary code execution with the privileges of the FreeRDP process, though code execution beyond a crash has not been demonstrated in the public PoC. Confidentiality and integrity of the client system are potentially at risk if code execution is achieved, while availability is definitively impacted (FreeRDP Advisory, GitHub Advisory).
A functional proof-of-concept exploit (gw_server.py) is publicly available in the FreeRDP security advisory, implementing a complete malicious RD Gateway server in Python that triggers the heap overflow without requiring authentication from the attacker's side. The PoC demonstrates a reliable client crash; arbitrary code execution is claimed but not demonstrated. No in-the-wild exploitation has been observed as of the advisory publication date, and the EPSS score is 0.0. The vulnerability is automatable (no user interaction required beyond the victim connecting to a malicious gateway) and has not been added to the CISA KEV catalog (FreeRDP Advisory, GitHub Advisory).
gw_server.py on an attacker-controlled host with a TLS certificate (self-signed is sufficient if the victim uses /cert:ignore). Start the server: python3 gw_server.py <PORT> <CERT> <KEY>.RPC_IN_DATA and RPC_OUT_DATA HTTP requests with HTTP 401 plus an NTLM Type 2 challenge, completing the authentication exchange to advance the client to the RPC context-negotiated state.CONN/A3 and CONN/C2 RTS PDUs on the OUT channel, then sends a secure BIND_ACK with an NTLM CHALLENGE token, causing the client to send RPC_AUTH_3 and reach CONTEXT_NEGOTIATED. The server registers call_id 2 from the client's TsProxyCreateTunnel request.PTYPE_RESPONSE fragment with frag_length=4087 and alloc_hint=1. Because alloc_hint differs from StubLength (4055), rpc_client_recv_fragment appends stub bytes without resetting pdu->s, leaving the stream position at offset 4055.PTYPE_BIND_ACK fragment with frag_length=4087. The code calls Stream_EnsureCapacity(pdu->s, 4087) (which passes since total capacity ≥ 4087) and then writes 4087 bytes at position 4055, overrunning the 4096-byte heap buffer by ~3904 bytes, causing a client crash or potential code execution (FreeRDP Advisory).ncacn_http) traffic patterns.[FATAL][com.freerdp.winpr.assert] messages referencing stream.h:Stream_Write with remaining capacity errors; log entries indicating wStream API misuse: stream was written out of bounds; client abort signals (signal 6/SIGABRT) from the FreeRDP process.xfreerdp, wfreerdp, or embedded FreeRDP) shortly after connecting to an RD Gateway; glibc heap corruption messages such as double free or corruption (!prev) in process output.Upgrade FreeRDP to version 3.32.2 or later, which contains the fix for the incorrect capacity check in rpc_client_recv_fragment. As a network-level workaround, restrict FreeRDP client access to only trusted, verified RD Gateway servers and enforce certificate validation (do not use /cert:ignore in production). Organizations should also monitor for unexpected RD Gateway connections from client endpoints to untrusted hosts. No alternative code-level workaround is provided by the vendor beyond upgrading (FreeRDP Advisory, GitHub Advisory).
The vulnerability was reported by researcher smaeljaish771 and sponsored by KeenSecurityLab, and was published by FreeRDP maintainer akallabeth on October 20, 2026. Social media activity was observed on Mastodon and Bluesky shortly after NVD publication on November 4, 2026, with automated CVE tracking accounts noting the advisory. No significant broader media coverage or notable independent researcher commentary beyond the official advisory has been identified (FreeRDP Advisory).
Corrigez la disponibilité entre les grandes distributions Linux et leurs versions.
Source: Ce rapport a été généré à l’aide de l’IA
Évaluation gratuite des vulnérabilités
Évaluez vos pratiques de sécurité cloud dans 9 domaines de sécurité afin d’évaluer votre niveau de risque et d’identifier les lacunes dans vos défenses.
Obtenez une démo personnalisée
"La meilleure expérience utilisateur que j’ai jamais vue, offre une visibilité totale sur les workloads cloud."
"Wiz fournit une interface unique pour voir ce qui se passe dans nos environnements cloud."
"Nous savons que si Wiz identifie quelque chose comme critique, c’est qu’il l’est réellement."