FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, a malicious RDP server can trigger a heap buffer overflow in FreeRDP clients using the GDI surface pipeline (e.g., xfreerdp) by sending an RDPGFX ClearCodec surface command with an out-of-bounds destination rectangle. The gdi_SurfaceCommand_ClearCodec() handler does not call is_within_surface() to validate the command rectangle against the destination surface dimensions, allowing attacker-controlled cmd->left/cmd->top (and subcodec rectangle offsets) to reach image copy routines that write into surface->data without bounds enforcement. The OOB write corrupts an adjacent gdiGfxSurface struct's codecs* pointer with attacker-controlled pixel data, and corruption of codecs* is sufficient to reach an indirect function pointer call (NSC_CONTEXT.decode at nsc.c:500) on a subsequent codec command — full instruction pointer (RIP) control demonstrated in exploitability harness. Users should upgrade to version 3.23.0 to receive a patch.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/26xxx/CVE-2026-26955.json",
"cwe_ids": [
"CWE-787"
],
"cna_assigner": "GitHub_M"
}{
"source": [
"CPE_RANGE",
"REFERENCES"
],
"cpe": "cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:*",
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "3.23.0"
}
]
}"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-26955.json"
[
{
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"337102543481686678806426411982219186725",
"142178338594568985456747912589820267684",
"321241827299255414039213524635076784854",
"191482064253101754193482270492063537284",
"313014913062463781557687446026456019312",
"225939152721285012853400641492428312768",
"157778159804837661293442588007063628225",
"249096992896262465669941567909039340523",
"118305146628341557657848518247870006318",
"72464142610846638201591829741155265446",
"266547187582236839130398311058964394112",
"109286712232311739019943485516455006562",
"16373416886167172447552647924719246384"
]
},
"source": "https://github.com/freerdp/freerdp/commit/7d8fdce2d0ef337cb86cb37fc0c436c905e04d77",
"signature_type": "Line",
"target": {
"file": "libfreerdp/codec/clear.c"
},
"id": "CVE-2026-26955-3b6c30c0",
"deprecated": false
}
]
"2026-07-16T08:45:28Z"