FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.24.2, in resizevbarentry() in libfreerdp/codec/clear.c, vBarEntry->size is updated to vBarEntry->count before the winpralignedrecalloc() call. If realloc fails, size is inflated while pixels still points to the old, smaller buffer. On a subsequent call where count <= size (the inflated value), realloc is skipped. The caller then writes count * bpp bytes of attacker-controlled pixel data into the undersized buffer, causing a heap buffer overflow. This issue has been patched in version 3.24.2.
{
"cwe_ids": [
"CWE-122",
"CWE-131"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33984.json",
"cna_assigner": "GitHub_M",
"unresolved_ranges": [
{
"source": "AFFECTED_FIELD",
"extracted_events": [
{
"fixed": "3.24.2"
}
]
}
]
}"2026-07-22T03:22:02Z"
[
{
"signature_type": "Line",
"target": {
"file": "libfreerdp/codec/clear.c"
},
"deprecated": false,
"source": "https://github.com/freerdp/freerdp/commit/dc7fdb165095139be779a4000199bc1706b06ad5",
"id": "CVE-2026-33984-cc313d21",
"signature_version": "v1",
"digest": {
"line_hashes": [
"255620317009823173716794771041383794154",
"45382684195642432902215227819199050758",
"37388766999991567979854639852611980240",
"261795573816620269820705386991962313160",
"215911420867761152498354173213009403257",
"332010693786912959878788595254727331335",
"36461259977012459159480986689834207710",
"49211117325874623436401642442358680092"
],
"threshold": 0.9
}
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-33984.json"