ZeroHour

CVE-2026-91954

large

Null Pointer Dereference in FreeRDP Client via NSCodec Surface Bits Command

CVSS 4.0
7.1 high
EPSS
Published
()
Modified
AI analysis

FreeRDP before 3.31.0 contains a null pointer dereference (CWE-476) in the gdi_surface_bits function, which handles RDP Surface Bits commands used to deliver graphical updates to the client. A malicious or compromised RDP server triggers the crash by sending a crafted Surface Bits command that declares the NSCodec codec ID, and the bug fires even when the NSCodec codec is disabled on the client, so turning the codec off is not a workaround. The impact is denial of service only: the FreeRDP client crashes, with no confidentiality or integrity impact, consistent with the CVSS 4.0 score of 7.1 driven by high availability impact. Anyone running a FreeRDP-based client below 3.31.0 (such as xfreerdp or downstream products like Remmina and embedded RDP clients) who connects to an untrusted server is affected, since the attacker is the server side of the session. No public proof of concept is known and the issue is not listed in CISA's KEV, so exploitation status is none known.

What to do: Upgrade to FreeRDP 3.31.0 or later, or apply your distribution's patched freerdp/freerdp3 package as soon as it is available. Note that disabling NSCodec does not mitigate the crash, so patching is the only reliable fix. Audit embedded or OEM products (thin clients, remote-workspace apps) that bundle FreeRDP for updated builds, and remind users to connect only to trusted RDP servers.

Affected
FreeRDPbefore 3.31.0 (< 3.31.0)
Estimated exposure
large≈100k–1M+ FreeRDP client installations across Linux distributions and downstream RDP products — FreeRDP is packaged by all major Linux distributions and embedded in numerous third-party RDP clients, but because this is a client-side flaw it is not visible to internet-wide scans, so this is an order-of-magnitude estimate of 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.31.0 contains a null pointer dereference vulnerability in gdi_surface_bits when processing Surface Bits commands with NSCodec codec ID. A malicious RDP server can crash a FreeRDP client by sending a crafted Surface Bits command claiming to use NSCodec, even when the codec is disabled.

Weakness
CWE-476
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/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.