CVE-2026-121958
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.
- Score
- 8.7 high
- Published
- 2026-11-04
- Links
- NVD · cve.org · Report wrong data
Matched ports (1)
| Port | Package | Version | Status | Maintainer |
|---|---|---|---|---|
| net/freerdp | freerdp | 2.11.8_1 | unaddressed | vvd@FreeBSD.org |
Template for a VuXML entry
Check the version numbers before you commit this entry. Some ports share an entry in the CVE database with another port, such as sqlite2 and sqlite3. The version shown here may then be one that never existed for this port.
Ranges per package from the CVE rows that match this port, in pkg notation with the port's epoch and revision, every bound checked with pkg; one range per epoch the port actually had. make newentry in security/vuxml creates the vid.
<vuln vid="FIXME (make newentry)">
<topic>freerdp -- FIXME</topic>
<affects>
<package>
<name>freerdp</name>
<range><le>3.32.1</le></range>
</package>
</affects>
<description>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>CVE-2026-121958: 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.</p>
</body>
</description>
<references>
<cvename>CVE-2026-121958</cvename>
<url>https://nvd.nist.gov/vuln/detail/CVE-2026-121958</url>
</references>
<dates>
<discovery>2026-11-04</discovery>
<entry>2026-11-04</entry>
</dates>
</vuln>