FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.24.0, a client-side heap out-of-bounds read/write occurs in FreeRDP's bitmap cache subsystem due to an off-by-one boundary check in bitmapcacheput. A malicious server can send a CACHEBITMAPORDER (Rev1) with cacheId equal to maxCells, bypassing the guard and accessing cells[] one element past the allocated array. This vulnerability is fixed in 3.24.0.
{
"cwe_ids": [
"CWE-787"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29775.json"
}{
"source": [
"CPE_RANGE",
"REFERENCES"
],
"cpe": "cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:*",
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "3.24.0"
}
]
}
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-29775.json"
[
{
"signature_type": "Function",
"digest": {
"function_hash": "40570399901239247730917153314347658181",
"length": 869.0
},
"target": {
"function": "bitmap_cache_new",
"file": "libfreerdp/cache/bitmap.c"
},
"source": "https://github.com/freerdp/freerdp/commit/ffad58fd2b329efd81a3239e9d7e3c927b8e503f",
"signature_version": "v1",
"id": "CVE-2026-29775-32524749",
"deprecated": false
},
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"260513939318352012274801380093851232532",
"22331775502931319394067175721516626515",
"56010743928259788987255740394272507743",
"310186224946725158022139522843209929377"
]
},
"target": {
"file": "libfreerdp/cache/bitmap.c"
},
"source": "https://github.com/freerdp/freerdp/commit/ffad58fd2b329efd81a3239e9d7e3c927b8e503f",
"signature_version": "v1",
"id": "CVE-2026-29775-ca4097ad",
"deprecated": false
}
]
"2026-08-12T15:33:05Z"