{"id":"CVE-2026-121952","kind":"vulnerability","aliases":["CVE-2026-121952"],"related":[],"title":"FreeRDP proxy: out-of-bounds write lets a client corrupt server heap","description":"FreeRDP before 3.32.2 has an out-of-bounds write in the proxy because rdp_read_bitmap_cache_v2_capability_set rejects only numCellCaches values above 5, yet the bitmap cache v2 cell array is later accessed at fixed indices 0 through 4. A client connecting to the proxy can declare fewer than five cell caches in its Confirm Active, causing heap corruption, heap data leakage to the backend, or a crash.","summary":"FreeRDP's proxy component accepts a bitmap cache v2 capability value below five but then writes to fixed cell indices 0 through 4, causing out-of-bounds heap writes. A connecting client can corrupt heap memory, leak heap data to the backend, or crash the proxy.","severity":"critical","cvss":9.8,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["freerdp","proxy","rdp","runtime","self-hosted"],"not_affected_if":["client-only-use","proxy-not-deployed"],"how_to_check":"- Check the installed FreeRDP version with `xfreerdp --version` or the package manager, and see whether it is below `3.32.2`.\n- Confirm whether the FreeRDP proxy component is deployed in your environment.","fix":"- FreeRDP: move to `3.32.2` or later","status":"open","published_at":"2026-11-04T16:17:47+00:00","first_seen_at":"2026-11-04T16:28:11+00:00","triaged_at":"2026-11-04T16:28:33+00:00","updated_at":"2026-11-04T16:28:33+00:00","category":"runtime","confidence":0.7,"triage":{"at":"2026-11-04T16:28:33Z","model":"claude-haiku-5-5","output":{"fix":"- FreeRDP: move to `3.32.2` or later","reach":"network","title":"FreeRDP proxy: out-of-bounds write lets a client corrupt server heap","impact":"high","summary":"FreeRDP's proxy component accepts a bitmap cache v2 capability value below five but then writes to fixed cell indices 0 through 4, causing out-of-bounds heap writes. A connecting client can corrupt heap memory, leak heap data to the backend, or crash the proxy.","audience":"businesses","category":"runtime","nicknames":[],"who_cares":["freerdp","rdp","self-hosted","proxy"],"confidence":0.7,"fix_status":"available","needs_auth":"unknown","worst_case":"Remote client corrupts proxy heap memory and reads backend data","analyst_note":"Confirm from the vendor advisory (github.com) whether the proxy is the only affected component and whether authentication is required before the Confirm Active message.","how_to_check":"- Check the installed FreeRDP version with `xfreerdp --version` or the package manager, and see whether it is below `3.32.2`.\n- Confirm whether the FreeRDP proxy component is deployed in your environment.","plain_action":"","needs_analyst":true,"not_affected_if":["client-only-use","proxy-not-deployed"],"who_is_affected":"Teams running the FreeRDP proxy, which sits between RDP clients and a backend, are exposed because a connecting client controls the bitmap cache capability values. Installations that use FreeRDP only as a client, without the proxy, are not described as affected by the sources.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"critical"},"cost_usd":0.000717,"input_tokens":4233,"output_tokens":588,"severity_before":"critical"},"analyst_status":null,"analyst_note":null,"search":"'-121952':16A,19A '-2026':15A,18A '0':47B,114C '3.32.2':76C '4':49B,116C '5':100C 'accept':31B 'access':110C 'activ':133C 'array':107C 'backend':69B,142C 'bitmap':33B,90C,103C 'bound':6A,54B,82C 'cach':34B,91C,104C,129C 'capabl':36B,93C 'caus':50B,134C 'cell':45B,106C,128C 'client':10A,59B,118C 'compon':30B 'confirm':132C 'connect':58B,119C 'corrupt':11A,61B,136C 'crash':71B,145C 'cve':14A,17A 'data':66B,138C 'declar':124C 'fewer':125C 'five':39B,127C 'fix':44B,112C 'freerdp':1A,20B,27B,74C 'heap':13A,55B,62B,65B,135C,137C 'host':26B 'indic':46B,113C 'later':109C 'leak':64B 'leakag':139C 'let':8A 'memori':63B 'numcellcach':97C 'out-of-bound':3A,51B,79C 'proxi':2A,21B,29B,73B,86C,122C 'rdp':22B,88C 'read':89C 'reject':95C 'runtim':23B 'self':25B 'self-host':24B 'server':12A 'set':94C 'v2':35B,92C,105C 'valu':37B,98C 'write':7A,42B,56B,83C 'yet':101C","nicknames":[],"mitigations":[],"who_affected":"Teams running the FreeRDP proxy, which sits between RDP clients and a backend, are exposed because a connecting client controls the bitmap cache capability values. Installations that use FreeRDP only as a client, without the proxy, are not described as affected by the sources.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["critical","freerdp","proxy","rdp","runtime","selfhosted"],"campaign_type":null,"first_public_at":"2026-10-20T17:14:12+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-121952","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121952","severity":null,"published_at":"2026-11-04T16:17:47+00:00","modified_at":"2026-11-04T16:17:47+00:00","first_seen_at":"2026-11-04T16:28:11+00:00","fetched_at":"2026-11-04T16:28:11+00:00","note":null}],"documents":[{"id":68474,"url":"https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-xc85-4mqc-xgcx","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-20T17:14:12+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":68475,"url":"https://www.vulncheck.com/advisories/freerdp-before-3.32.2-proxy-out-of-bounds-write-via-bitmap-cache-v2-capability","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}