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"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29775.json",
"cna_assigner": "GitHub_M"
}{
"cpe": "cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:*",
"source": [
"CPE_RANGE",
"REFERENCES"
],
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "3.24.0"
}
]
}"2026-07-22T03:08:51Z"
[
{
"signature_type": "Function",
"target": {
"file": "libfreerdp/cache/bitmap.c",
"function": "bitmap_cache_new"
},
"deprecated": false,
"source": "https://github.com/freerdp/freerdp/commit/ffad58fd2b329efd81a3239e9d7e3c927b8e503f",
"id": "CVE-2026-29775-32524749",
"signature_version": "v1",
"digest": {
"function_hash": "40570399901239247730917153314347658181",
"length": 869.0
}
},
{
"signature_type": "Line",
"target": {
"file": "libfreerdp/cache/bitmap.c"
},
"deprecated": false,
"source": "https://github.com/freerdp/freerdp/commit/ffad58fd2b329efd81a3239e9d7e3c927b8e503f",
"id": "CVE-2026-29775-ca4097ad",
"signature_version": "v1",
"digest": {
"line_hashes": [
"260513939318352012274801380093851232532",
"22331775502931319394067175721516626515",
"56010743928259788987255740394272507743",
"310186224946725158022139522843209929377"
],
"threshold": 0.9
}
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-29775.json"