☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 6.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H 🐛 CWE-476
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-110829

CVE-2026-110829 Null Pointer Dereference in FreeRDP
📅 PUBLISHED: 2026-10-14 00:00 UTC 🔄 UPDATED: 2026-10-15 23:32 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.25%
👁️
0.25% probability
6.3× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1499
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 6.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: U Scope Unchanged
C: N Confidentiality None
I: N Integrity None
A: H Availability High
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-110829 is a null pointer dereference (CWE-476) in the FreeRDP rdpsnd audio channel affecting all versions from 3.0.0 up to (but excluding) 3.32.0. A malicious or compromised RDP server can send a malformed rdpsnd PDU on a fresh channel — one that sets CHANNEL_FLAG_LAST without CHANNEL_FLAG_FIRST — causing the client to dereference a null pointer and crash, resulting in client-side denial of service. The vulnerability requires user interaction (the victim must connect to the attacker-controlled RDP server) and has no impact on confidentiality or integrity, yielding a CVSS 3.1 base score of 6.5 (Medium).

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The rdpsnd channel is FreeRDP's implementation of the RDP Audio Output Virtual Channel, used to transport audio playback data from a remote RDP server to the local client. In the RDP virtual channel protocol, a channel data fragment is described by a header carrying flag bits. Two of the most semantically significant are CHANNEL_FLAG_FIRST, marking the first fragment of a logical channel message, and CHANNEL_FLAG_LAST, marking the final fragment. In well-formed traffic, CHANNEL_FLAG_FIRST precedes or coincides with CHANNEL_FLAG_LAST, and receivers scope each message by observing the FIRST marker when the reassembly buffer is initialized.

CVE-2026-110829 arises from the client's failure to validate flag sequencing. When a fragment arrives that carries CHANNEL_FLAG_LAST but not CHANNEL_FLAG_FIRST on a channel that has not yet been initialized by a FIRST fragment, the receiving code path processes a channel state that was never allocated or populated. The NVD description states this results in a null pointer dereference. The essential mechanism is a state-machine validation gap: the parser assumes that any fragment reaching the reassembly logic has a valid context, and the LAST-without-FIRST ordering bypasses that assumption. Rather than rejecting the malformed fragment as a protocol violation, the client dereferences invalid state.

The attack surface is the RDP client's virtual channel demultiplexer as it is exposed to server-originated rdpsnd traffic over the established RDP connection. Critically, the flaw is triggerable on a "fresh channel" — meaning the malicious server does not need prior legitimate audio traffic to prime the channel before delivering the malformed PDU. This removes any requirement for an established benign session state and lowers the bar for reliable triggering. The vulnerability is entirely client-side and server-triggered: exploitation depends on the victim initiating an RDP session to a server under attacker control.

Because the impact is a crash (availability loss on the client endpoint) and the CVSS vector carries C:N/I:N, there is no evidenced path to memory corruption, code execution, or data disclosure from this specific flaw.

Exploitation Scenarios

No public proof-of-concept, exploit code, or Nuclei template is available for CVE-2026-110829. The attack chain below is inferred strictly from the vulnerability class and the NVD description; no specific function names, endpoints, or code patterns beyond those in the description are claimed.

  1. Reconnaissance / target identification. The attacker requires a target user (or automated RDP client deployment) to connect to an RDP server the attacker controls. The attack is therefore not a scan-and-exploit mass campaign against exposed services; it is a client-side or social-engineering-driven scenario. Typical vectors: a malicious RDP server offered via phishing, a typosquatted or attacker-registered remote-desktop host, a compromised or hostile cloud/RDP-broker endpoint, or a supply-chain/interposition position on the network between client and server (e.g., an on-path adversary able to inject server responses).

  2. Precondition establishment. The victim initiates a FreeRDP client connection (3.0.0 ≤ version < 3.32.0) to the malicious server and completes enough of the RDP handshake for virtual channel negotiation, including the rdpsnd audio channel, to occur.

  3. Triggering the specific flaw class. The malicious server sends a malformed rdpsnd channel PDU in which the fragment flags set CHANNEL_FLAG_LAST without CHANNEL_FLAG_FIRST, delivered on a fresh rdpsnd channel with no preceding FIRST fragment. This presents a LAST-terminated fragment to the client's reassembly/dispatch path before any channel context for that message exists. Per the description, the client dereferences a null pointer and crashes.

  4. Post-exploitation impact. The outcome is a client-side crash — denial of service. FreeRDP terminates (or the hosting application embedding the client aborts). The exploit does not, per available data, yield code execution, lateral movement, or data theft. An attacker could repeatedly target a user or an automated client to achieve persistent denial of service against remote-desktop workflows.

Impact Assessment

The CVSS 3.1 vector AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H scores 6.5 (Medium). Interpretation:

  • AV:N (Network): the malformed PDU travels over the network as part of the RDP session.
  • AC:L (Low): the description indicates a simple flag-ordering condition reliably triggers the defect; no race or complex grooming is described.
  • PR:N (None): the attacker needs no privileges on the target.
  • UI:R (Required): the victim must connect to the attacker-controlled server — this is the principal limiting factor.
  • S:U (Unchanged): impact stays within the client process boundary.
  • C:N/I:N/A:H (High availability impact): a successful trigger crashes the client but does not disclose or alter data.

Blast radius. Any application or environment using an affected FreeRDP version as an RDP client: standalone xfreerdp/wlfreerdp sessions, thin clients, virtual desktop infrastructure gateways, jump hosts, build/CI agents that spawn RDP sessions, and products embedding FreeRDP. Because exploitation requires an outbound connection to a hostile server, the risk concentrates on users who connect to untrusted, unknown, or externally influenced RDP endpoints.

Business impact. Loss of user productivity and interruption of remote administration or automation tasks; potential operational disruption if RDP-connected thin clients, kiosks, or automated sessions are repeatedly crashed. Severity is moderated by the absence of confidentiality/integrity impact and the user-interaction requirement.

Detection Guidance

Sigma Rule

title: FreeRDP rdpsnd Null Pointer Dereference DoS Attempt (CVE-2026-110829)
id: 5f2c9a41-0d7b-4e88-9a63-0bd1f7a1c6e2
status: experimental
description: Detects crash or abnormal termination of FreeRDP clients consistent with a malformed rdpsnd PDU (CHANNEL_FLAG_LAST without CHANNEL_FLAG_FIRST) sent by a malicious RDP server.
author: Valters IT Threat Intelligence
date: 2026-01-01
logsource:
  category: process_creation
  product: windows
detection:
  selection_proc:
    Image|endswith:
      - '\wfreerdp.exe'
      - '\xfreerdp.exe'
      - '\freerdp.exe'
  selection_err:
    CommandLine|contains:
      - 'rdpsnd'
  condition: selection_proc and selection_err
falsepositives:
  - Legitimate use of the rdpsnd audio channel against trusted servers
level: low
tags:
  - attack.t1499
  - cve.2026-110829

YARA Rule

rule CVE_2026_110829_FreeRDP_rdpsnd_Malformed_Fragment
{
    meta:
        author = "Valters IT Threat Intelligence"
        description = "Detects FreeRDP rdpsnd channel handling related to CHANNEL_FLAG_FIRST / CHANNEL_FLAG_LAST flag validation (CVE-2026-110829). Heuristic string match; verify context before alerting."
        cve = "CVE-2026-110829"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-110829"
        date = "2026-01-01"
    strings:
        $ch_a = "CHANNEL_FLAG_FIRST" ascii
        $ch_b = "CHANNEL_FLAG_LAST" ascii
        $rdp1 = "rdpsnd" ascii nocase
        $rdp2 = "FreeRDP" ascii nocase
    condition:
        uint16(0) == 0x5A4D and 2 of ($ch_*) and $rdp1
        or 3 of them
}

Suricata IDS Rule

alert tcp any any -> any 3389 ( \
  msg:"CVE-2026-110829 FreeRDP rdpsnd malformed fragment (CHANNEL_FLAG_LAST without FIRST) DoS attempt"; \
  flow:established,from_server; \
  content:"|02 00 00 00|"; depth:4; \
  flowbits:isset,rdp.conn; \
  threshold:type limit, track by_src, count 1, seconds 60; \
  classtype:attempted-dos; \
  reference:cve,2026-110829; \
  reference:url,nvd.nist.gov/vuln/detail/CVE-2026-110829; \
  sid:2026110829; rev:1; )

Elastic Detection

sequence by process.entity_id with maxspan=5s
  [process where process.name in ("xfreerdp","wlfreerdp","wfreerdp","freerdp") and process.command_line : "*rdpsnd*"]
  [process where event.type == "end" and process.exit_code != 0 and process.name in ("xfreerdp","wlfreerdp","wfreerdp","freerdp")]

Splunk SPL Query

index=endpoint OR index=sysmon (Image="*\\xfreerdp*" OR Image="*\\wlfreerdp*" OR Image="*\\wfreerdp*" OR Image="*\\freerdp*")
| search CommandLine="*rdpsnd*" OR CommandLine="*rdp*"
| stats count min(_time) as first_seen max(_time) as last_seen by host, Image, CommandLine, User
| where count >= 1
| sort - count

Wazuh OSSEC Rule

<group name="freerdp,cve-2026-110829,">
  <rule id="1108290" level="5">
    <decoded_as>json</decoded_as>
    <field name="program">^FreeRDP</field>
    <match>rdpsnd|null pointer|segmentation fault|invalid channel fragment</match>
    <description>CVE-2026-110829: Possible FreeRDP rdpsnd null pointer dereference / crash triggered by malformed RDP server PDU</description>
    <mitre>
      <id>T1499</id>
    </mitre>
    <options>no_full_log</options>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 0/4 — UNPATCHED. No patch evidence has been identified from any tracked source; no vendor fix, workaround, or affected-version advisory metadata was supplied.

  1. Immediate mitigations (compensating controls):

    • Do not connect FreeRDP clients (3.0.0 ≤ version < 3.32.0) to untrusted, unknown, or externally controlled RDP servers. Treat connecting to a third-party RDP endpoint as a trust decision.
    • Where audio output is not required, disable the rdpsnd audio virtual channel at the client to remove the attack surface for this specific flaw. Confirm channel-restriction options for your FreeRDP build and test before broad deployment.
    • Restrict outbound RDP (TCP/3389) from client networks to approved server destinations via egress filtering/firewall policy.
    • Enable endpoint crash/telemetry monitoring to detect abnormal FreeRDP process termination and correlate with destination RDP hosts.
    • Consider application allowlisting and process supervision to auto-restart critical thin-client/thin-host sessions (resilience, not prevention).
  2. Patch / upgrade steps:

    • No confirmed patch exists as of this report. Monitor the FreeRDP project for a fix and validate any release that advances past the affected range. The description bounds the affected range as "3.0.0 before 3.32.0," implying a fixed release at or beyond 3.32.0, but no vendor patch or fixed version has been independently confirmed in the supplied data — do not treat 3.32.0 as verified until the vendor states so.
    • When a fix is published: inventory all FreeRDP deployments (standalone clients, embedded SDK consumers, thin clients, VDI gateways), stage the upgrade in a test environment, then roll out. Track third-party products that embed FreeRDP separately, as they require vendor-supplied updates.
  3. Long-term hardening:

    • Maintain a software bill of materials (SBOM) that identifies FreeRDP and its embedded dependencies to speed future impact assessments.
    • Standardize on connecting only to RDP endpoints over mutually authenticated, encrypted transport and to approved infrastructure.
    • Adopt fuzzing/robustness testing expectations for RDP client virtual channels when selecting or embedding clients.
    • Subscribe to FreeRDP project advisories and the NVD entry to receive authoritative patch status.

References

Threat actor / exploit-in-the-wild status: No public proof-of-concept, exploit code, Nuclei template, or evidence of in-the-wild exploitation was provided. CVE-2026-110829 is not listed in CISA KEV, and no associated threat actor campaigns are known from the supplied data. All exploitation detail above is inferred from the documented vulnerability class and NVD description only.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

product:"FreeRDP"
title:"FreeRDP"
product:"FreeRDP" "3.0.0"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-110829/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.