ZeroHour

CVE-2026-67299

PoC mass

Use-after-free in FreeRDP async update path via malicious RDP server icon order

CVSS 4.0
8.7 high
EPSS
<1%p28
Published
()
Modified
AI analysis

FreeRDP before 3.29.0 contains a client-side heap use-after-free (CWE-416) in the async update message proxy for WINDOW_ICON_ORDER, which is active only when AsyncUpdate is enabled, for example by launching xfreerdp with the /async-update flag. A malicious or compromised RDP server can send a crafted RAIL Window Alternate Secondary Order containing WINDOW_ORDER_ICON, causing update_message_WindowIcon() to overwrite a freshly allocated structure with a parser-owned pointer that is freed by update_recv_window_info_order() before the queued async message later dispatches the stale pointer. An attacker who controls or can impersonate an RDP server that a vulnerable client connects to gains memory corruption that crashes the client (availability impact is rated high; confidentiality and integrity are not affected per the CVSS vector). Anyone running a FreeRDP-based client with AsyncUpdate enabled when connecting to untrusted RDP servers is affected. No in-the-wild exploitation is reported yet, but a public proof-of-concept reference exists in the FreeRDP security advisory (GHSA-34hq-hwjw-q8v3) and exploitation probability is modest (EPSS ~0.3% over 30 days).

What to do: Upgrade FreeRDP to 3.29.0 or later as the definitive fix. Where upgrading is not immediately possible, stop launching clients with /async-update (or disable AsyncUpdate in library integrations) and only connect to trusted RDP servers. Audit startup scripts, wrappers, and embedded product configurations for the /async-update flag to determine whether deployments exercise the affected code path.

Affected
FreeRDPall versions before 3.29.0 (client builds with AsyncUpdate enabled, e.g. xfreerdp /async-update)
Estimated exposure
massplausibly millions of installed FreeRDP client instances (Linux distribution bundling plus third-party embeds), of which an unknown subset runs with… — FreeRDP is the dominant open-source RDP client library shipped in major Linux distributions and embedded in many third-party remote-access products, indicating an installed base in the millions, but the flaw is only reachable when the…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

FreeRDP before 3.29.0 contains a client-side heap use-after-free in the async update message proxy for WINDOW_ICON_ORDER when AsyncUpdate is enabled (e.g. xfreerdp /async-update). In update_message_WindowIcon() a shallow CopyMemory() overwrites a freshly allocated lParam->iconInfo with the parser-owned windowIcon->iconInfo pointer. After the parser callback returns, update_recv_window_info_order() frees window_icon.iconInfo, but the queued async message still retains and later dispatches that stale pointer. A malicious or compromised RDP server sending a crafted RAIL Window Alternate Secondary Order with WINDOW_ORDER_ICON can trigger use-after-free, leading to memory corruption and client crash.

Vendors
freerdp
Products
freerdp
Weakness
CWE-416
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 news

No ingested article mentions this CVE yet.