CVE-2026-23948: 
NixOS vulnerability analysis and mitigation

Overview

CVE-2026-23948 is a NULL Pointer Dereference vulnerability in FreeRDP's rdp_write_logon_info_v2() function that allows a malicious RDP server to crash the FreeRDP proxy via a specially crafted LogonInfoV2 PDU. It affects all FreeRDP versions up to and including 3.21.0, and was fixed in version 3.22.0. The vulnerability was published on February 9, 2026, with the security advisory authored by the FreeRDP maintainer akallabeth. It carries a CVSS v3.1 base score of 7.5 (High) (Red Hat CVE, GitHub Advisory).

Technical details

The root cause (CWE-476: NULL Pointer Dereference) lies in libfreerdp/core/info.c. The rdp_info_read_string() function sets the destination pointer to NULL and returns TRUE (success) when the size field is zero — meaning when a malicious server sends a LogonInfoV2 PDU with cbDomain=0 or cbUserName=0, parsing succeeds but info->domain or info->username is left as NULL. When the FreeRDP proxy subsequently calls rdp_write_logon_info_v2() to forward this PDU to a client, it invokes strnlen(NULL, 256) without a NULL check, causing a crash. Notably, the same class of bug had previously been fixed in rdp_write_logon_info_v1() (commit 71e463e), but the fix was not applied to the v2 variant. The fix (commit 4d44e3c) adds NULL guards for both info->domain and info->username before calling strnlen() (GitHub Advisory, GitHub Commit).

Impact

Successful exploitation results in a Denial of Service (DoS) condition — the FreeRDP proxy process crashes, disrupting service for all clients routed through that proxy instance. There is no confidentiality or integrity impact; only availability is affected. Organizations using FreeRDP proxy as a gateway or middlebox connecting to untrusted RDP servers are the primary at-risk population (GitHub Advisory, Red Hat CVE).

Exploitability

No public proof-of-concept exploit code is known to exist, and there is no evidence of in-the-wild exploitation as of the time of writing. The vulnerability is network-exploitable with no authentication or user interaction required, making it straightforward to trigger if an attacker controls or impersonates an RDP server reachable by the proxy. The EPSS score is approximately 0.044% (low probability of exploitation in the near term). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog (GitHub Advisory, Red Hat CVE).

Exploitation steps

  1. Set up a malicious RDP server: Configure a rogue RDP server (e.g., using a modified FreeRDP server or a custom RDP implementation) capable of sending crafted SaveSessionInfo PDUs containing a LogonInfoV2 structure.
  2. Craft the malicious PDU: Construct a LogonInfoV2 PDU with cbDomain=0 and/or cbUserName=0. This causes the FreeRDP proxy's parser (rdp_info_read_string()) to set info->domain or info->username to NULL while returning success.
  3. Position the malicious server: Ensure the target FreeRDP proxy is configured to connect to (or can be redirected to) the attacker-controlled RDP server — for example, via DNS spoofing, ARP poisoning, or by operating a server that the proxy is legitimately configured to reach.
  4. Trigger the crash: When the FreeRDP proxy receives the crafted SaveSessionInfo PDU and attempts to forward it to the client via rdp_write_logon_info_v2(), the missing NULL check causes strnlen(NULL, 256) to be called, crashing the proxy process and causing a DoS for all connected clients (GitHub Advisory, GitHub Commit).

Indicators of compromise

  • Logs: Sudden termination or crash log entries for the freerdp-proxy process; segmentation fault (SIGSEGV) or similar signals in system logs (e.g., /var/log/syslog, journalctl) referencing the FreeRDP proxy binary.
  • Process: Unexpected restarts of the freerdp-proxy daemon; core dump files generated in the proxy's working directory following a crash.
  • Network: Inbound RDP connections from unexpected or untrusted server IPs to the FreeRDP proxy; network traffic containing SaveSessionInfo PDUs with zero-length domain or username fields (detectable via deep packet inspection on RDP traffic, TCP port 3389).

Mitigation and workarounds

The primary remediation is to upgrade FreeRDP to version 3.22.0 or later, which includes the fix in commit 4d44e3c. As a workaround prior to patching, implement network segmentation to restrict FreeRDP proxy connections to only trusted, known-good RDP servers, and disable the proxy if it is not actively required. Red Hat has issued multiple errata addressing this issue across RHEL 7 through 10 (RHSA-2026:6340, RHSA-2026:6727, RHSA-2026:6743, RHSA-2026:6799, RHSA-2026:6918, and others); Ubuntu issued USN-8042-1; and openSUSE, Mageia, Amazon Linux 2, and AlmaLinux have also released updated packages (GitHub Advisory, Red Hat Bugzilla, Ubuntu USN).

Community reactions

The vulnerability was reported by a researcher credited as "Keryer" and published by FreeRDP maintainer akallabeth via the GitHub Security Advisory program. Red Hat triaged it as medium severity and issued a broad set of errata across multiple RHEL versions. Coverage was picked up by Linux security news aggregators including LinuxSecurity.com, pro-linux.de, and linuxcompatible.org, reflecting standard community awareness for a moderate-severity open-source library CVE. No notable social media controversy or high-profile researcher commentary beyond the official advisory has been observed (GitHub Advisory, Red Hat Bugzilla).

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Affected

bookworm

freerdp2

Affected

sid

freerdp3: 3.22.0+dfsg-1

Fixed

trixie

freerdp3: 3.15.0+dfsg-2.1+deb13u1

Fixed

Ubuntu

Fixed

bionic (esm-apps)

freerdp

Unknown

bionic (esm-infra)

freerdp2: 2.2.0+dfsg1-0ubuntu0.18.04.4+esm5

Fixed

devel

freerdp3

Not Affected

focal (esm-infra)

freerdp2: 2.6.1+dfsg1-0ubuntu0.20.04.2+esm3

Fixed

jammy

freerdp2: 2.6.1+dfsg1-3ubuntu2.10

Fixed

noble

freerdp2

Affected

noble (esm-apps)

freerdp2: 2.11.5+dfsg1-1ubuntu0.1~esm5

Fixed

questing

freerdp3: 3.16.0+dfsg-2ubuntu0.1

Fixed

RHEL / CentOS

Fixed

RHEL 8

:appstream:freerdp-2:2.11.7-6.el8_10.src

Fixed

RHEL 9

:appstream:freerdp-2:2.4.1-3.el9_0.4.src

Fixed

RHEL 10

freerdp-2:3.10.3-3.el10_0.5.src

Fixed

Alpine

Fixed

edge

freerdp: 3.22.0-r0

Fixed

v3.23

freerdp: 3.22.0-r0

Fixed

Source: This report was generated using AI

Related NixOS vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-116199CRITICAL9.2
  • NixOS logoNixOS
  • cpe:2.3:a:snipeitapp:snipe-it
NoYesOct 25, 2026
CVE-2026-116201HIGH8.7
  • NixOS logoNixOS
  • cpe:2.3:a:snipeitapp:snipe-it
NoYesOct 25, 2026
CVE-2026-116200HIGH8.2
  • NixOS logoNixOS
  • cpe:2.3:a:snipeitapp:snipe-it
NoYesOct 25, 2026
CVE-2026-2270MEDIUM5.9
  • NixOS logoNixOS
  • kubernetes
NoYesOct 26, 2026
CVE-2026-76654MEDIUM5.8
  • NixOS logoNixOS
  • cpe:2.3:a:kubernetes:kubernetes
NoYesOct 26, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management