CVE-2026-24677 is a critical (CVSS 9.1) out-of-bounds read in the FreeRDP client's camera redirection code. It trusts dimensions sent by the server. Versions up to 3.21.0 are affected and 3.22.0 fixes it. Upgrade FreeRDP, and rebuild anything that bundles it.
What's affected
The GitHub advisory lists FreeRDP 3.21.0 and earlier as affected, with 3.22.0 as the patched version.
The flaw is in ecam_encoder_compress_h264. It trusts server controlled dimensions and does not validate the source buffer size, which leads to an out-of-bounds read in sws_scale. The risk applies to the client, when it connects to a malicious or compromised RDP server with camera redirection in play.
A sibling flaw in the USB redirection code, CVE-2026-24679, is fixed in the same release.
How to check if you're exposed
Check the FreeRDP version:
xfreerdp /version
Also check your package manager for libfreerdp. Many remote desktop clients and gateways embed FreeRDP, so look at your software inventory for tools that bundle it, including Linux remote desktop clients and container images.
For a quick look at your own dependencies, Safeguard's free in-browser dependency scan at https://gold.safeguard.sh/scan checks them against known CVEs in your browser.
What to do now
- Upgrade FreeRDP to 3.22.0 or later.
- Update applications that bundle FreeRDP and wait for their vendors' releases if you cannot rebuild them.
- Connect only to RDP servers you trust.
- Turn off camera redirection if you do not need it.
Why it matters
The record lists CWE-416, use after free, while the advisory describes an out-of-bounds read. Either way the program reads memory it should not, based on sizes a remote party controls. Reads of this kind can crash the client or leak memory contents.
The unusual part is the direction. In most RDP stories the server is the target, but here the client trusts the server. People who connect to servers outside their control, such as customer or lab machines, carry the risk. The CVE is not in CISA's Known Exploited Vulnerabilities catalog.
Clients that trust servers
Security teams usually think of remote desktop as a service to defend, with the server as the target. The FreeRDP advisories flip that. Here the client reads values sent by the server, such as image dimensions and interface numbers, and uses them without checking. A server that is malicious or compromised can send values that make the client read memory it should not.
That changes who should care. People who connect to machines they do not fully control carry the risk: support staff reaching customer systems, researchers connecting to lab honeypots, administrators on jump hosts that reach many networks. A compromised server inside your own network can also become a way to reach those users.
Where FreeRDP hides
FreeRDP is a library as well as a command line client. Many Linux remote desktop applications, gateways and virtual desktop tools link against it, and some bundle their own copy. Updating the system package does not update a bundled copy. To find them, list installed packages that depend on libfreerdp, check container images for remote desktop tools, and ask vendors of any such appliance which FreeRDP version they ship.
A sensible order of work
First, update FreeRDP on workstations and jump hosts that connect outward. Second, rebuild images that carry a client. Third, ask vendors of bundled products for a patched release and note the date you asked. While you wait, disable channels you do not need, such as camera and USB redirection, and connect only to servers you trust.
Keep it in proportion
The CVSS vector has no privileges and no user interaction, but it describes the attack from the server toward a client that has to connect first. That is a smaller population than a flaw reachable by anyone on the internet. It is still a good reason to patch in the normal cycle, and sooner for high exposure users.
Quick check
Is it the server or the client that is vulnerable?
The client. The flaw is in how the FreeRDP client handles data sent by the server.
Which version fixes it?
FreeRDP 3.22.0.
Sources
Last reviewed: 19 October 2026.