CVE-2026-67301
PoC massClient-side out-of-bounds read in FreeRDP async PolygonSC/PolygonCB handling
FreeRDP before 3.29.0 contains a client-side out-of-bounds read (CWE-125) in the asynchronous update message proxy for the PolygonSC and PolygonCB primary drawing orders: update_message_PolygonSC() and update_message_PolygonCB() allocate a fresh points array but copy point data from the address of the order structure itself instead of from polygonSC->points / polygonCB->points. The flaw is triggered when a FreeRDP client with AsyncUpdate enabled (for example via xfreerdp /async-update) connects to a malicious or compromised RDP server that sends crafted PolygonSC or PolygonCB update orders. A successful attack can cause the client to read beyond the allocated buffer, resulting in potential memory disclosure or a client crash; the CVSS 4.0 score of 8.7 (High) reflects high availability impact. Users of FreeRDP-based RDP clients running affected versions with async update enabled are affected, most typically xfreerdp users and products that embed the FreeRDP library. There is no evidence of exploitation in the wild (not in CISA KEV, EPSS 0.4%), but a public advisory with proof-of-concept details is available (GHSA-vxp3-7g6q-rq2w).
What to do: Upgrade FreeRDP to 3.29.0 or later. Until patched, avoid enabling /async-update (disable AsyncUpdate) when connecting to untrusted or potentially compromised RDP servers, since this is the trigger condition. Operators of thin-client fleets and products embedding the FreeRDP library should refresh the bundled FreeRDP version; no in-the-wild exploitation is reported (EPSS 0.4%, not in CISA KEV), so patching at normal cadence is reasonable for configurations that do not use async update.
| FreeRDP | all versions before 3.29.0 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
FreeRDP before 3.29.0 contains out-of-bounds read vulnerabilities in the async update message proxy for the PolygonSC and PolygonCB primary drawing orders. When AsyncUpdate is enabled (e.g., xfreerdp /async-update), update_message_PolygonSC() and update_message_PolygonCB() allocate a fresh points array but copy point data from the address of the order structure instead of from polygonSC->points / polygonCB->points, resulting in a client-side out-of-bounds read. A malicious or compromised RDP server sending crafted PolygonSC/PolygonCB update orders can trigger memory disclosure or a client crash.
- Vendors
- freerdp
- Products
- freerdp
- Weakness
- CWE-125
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/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
In the news0 stories
No ingested article mentions this CVE yet.