Safeguard
Vulnerability Analysis•

CVE-2026-22857: FreeRDP irp_thread_func Use After Free Fixed

CVE-2026-22857 is a critical heap use after free (CVSS 9.8) in FreeRDP irp_thread_func before 3.20.1. Upgrade to FreeRDP 3.20.1 or later now.

Safeguard Security Team
3 min read

CVE-2026-22857 is a critical heap use after free (CVSS 9.8) in FreeRDP before version 3.20.1. In irp_thread_func, the IRP is freed by irp->Complete() and then used again on the error path, which can corrupt memory. The fix is FreeRDP 3.20.1, so upgrade clients.

What's affected

FreeRDP before 3.20.1. The fixed version is 3.20.1.

The flaw is in irp_thread_func. The record says the IRP is freed by irp->Complete() and then accessed again on the error path.

How to check if you're exposed

Print the version of the client you use, and find other programs on the host that bundle the FreeRDP libraries.

xfreerdp /version
dpkg -l | grep -i freerdp
rpm -qa | grep -i freerdp

Use the line that fits your system. A reported version before 3.20.1 is affected unless your distribution says it backported the fix. Remote desktop front ends and other applications can embed FreeRDP, so check them as well.

What to do now

  1. Upgrade FreeRDP to 3.20.1 or later, or install your distribution update that carries the fix.
  2. Update or rebuild any application or container image that bundles the FreeRDP libraries.
  3. Connect only to RDP servers you trust until every client is updated.
  4. Where you can, disable redirection channels you do not need in your client settings.
  5. Add FreeRDP to your software inventory so the next advisory is matched quickly.

Why it matters

The weakness is CWE-416, a use after free. A structure is released, and a later line of code on a less common path still holds a pointer to it. Error paths are where these mistakes tend to hide, because tests rarely reach them.

The record does not describe the trigger further. Use after free flaws can lead to crashes or memory corruption, and the vector rates all three impacts as high with a score of 9.8. The record does not say the flaw is exploited in the wild, and it is not on the CISA KEV list.

The fix is to stop touching the object after it is completed, for example by saving what the error path needs before the call.

Quick check

What is an IRP?

The record uses the term for the request structure in the device redirection code. It is freed when the request completes.

What else did 3.20.1 fix?

Several other FreeRDP flaws, including CVE-2026-22852 and CVE-2026-22854.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.