☠️
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:L/UI:N/S:U/C:N/I:N/A:H 🐛 CWE-400
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-110832

CVE-2026-110832 Denial of Service 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.31%
👁️
0.31% probability
7.7× 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: L Privileges Required Low
UI: N User Interaction None
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-110832 is a memory exhaustion (denial-of-service) vulnerability in FreeRDP, affecting versions from 2.0.0 before 3.32.0. The flaw resides in wts_read_drdynvc_data_first, which mishandles the length field of a seven-byte DATA_FIRST dynamic virtual channel (DVC) message, allowing an authenticated client to declare an arbitrarily large 32-bit length and force the server to commit large zeroed resident memory allocations.

An authenticated remote attacker can repeatedly trigger these allocations over a single or multiple DVC sessions, driving the server process into resource exhaustion and rendering the RDP service unavailable. The CVSS v3.1 score is 6.5 (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H), reflecting a network-reachable, low-complexity availability impact that requires valid credentials but no user interaction, with no confidentiality or integrity impact.

⚡ 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 vulnerability class is resource exhaustion (CWE-400, Uncontrolled Resource Consumption), specifically memory exhaustion arising from a length-prefixed message that is processed without validating the declared length against a sane or bounded maximum before allocation.

FreeRDP's dynamic virtual channel subsystem implements the drdynvc protocol, over which a server and client negotiate and exchange data on named channels (for example, audio, clipboard, or display-related virtual channels). The dynamic virtual channel protocol uses message types such as DATA_FIRST to announce that a new block of channel data is beginning, followed by the payload in subsequent fragments. DATA_FIRST is a small, fixed-format message; per the NVD description it is only seven bytes. Despite its size, the message contains a 32-bit length field that the receiver uses to determine the size of the data about to arrive.

In FreeRDP versions 2.0.0 through before 3.32.0, the function wts_read_drdynvc_data_first reads this length value and, when handling the DATA_FIRST message, causes the server to commit a large memory allocation to accommodate the declared size. Because the function does not enforce an upper bound that is proportionate to the actual inbound data, an authenticated client can send a seven-byte DATA_FIRST message declaring a very large 32-bit length, and the server will expand its resident memory footprint accordingly — the description specifies zeroed resident memory growth.

The attack surface is the RDP dynamic virtual channel endpoint, reachable by any client that has successfully authenticated to the FreeRDP-based server. The critical property is the asymmetry between request size (seven bytes) and the allocation it induces (potentially huge), commonly called an "amplification" or "resource-consumption" primitive. Repetition across one or many DVCs, or via reconnection, increases the pressure until the process exceeds available memory and is terminated or stops servicing legitimate sessions.

Note that the pre-fix behavior is not described as an out-of-bounds memory access but as a memory exhaustion condition. The primary observable is resident (zeroed) memory growth in the RDP server process, not corruption.

Exploitation Scenarios

No public Proof-of-Concept (PoC) or exploit code is currently available, and no exploit code was identified in the provided intelligence. The attack chain below is inferred at the vulnerability-class level from the NVD description and supplied metadata; where the description is silent, no specific implementation detail is asserted.

  1. Reconnaissance / target identification: The attacker identifies a reachable RDP service that is backed by an affected FreeRDP version (2.0.0 through before 3.32.0). This is typically accomplished by locating exposed RDP listeners (commonly TCP 3389) via internet-wide scanning services or internal service discovery, and by fingerprinting the service or its upstream FreeRDP build where such data is exposed. The presence of the dynamic virtual channel mechanism in the negotiated RDP feature set determines exploitability against a given endpoint.

  2. Triggering the flaw class: The attacker must first authenticate to the server (PR:L, privileges required) and open at least one dynamic virtual channel (DVC). Once a DVC is open, the attacker sends a seven-byte DATA_FIRST message that declares a large 32-bit length value. The vulnerable function wts_read_drdynvc_data_first processes this declaration and causes the server to commit a large allocation of zeroed resident memory, despite the incoming message being only seven bytes. Because the length field is 32-bit and the message is tiny, the attacker fully controls the magnitude of the allocation via the declared value.

  3. Payload / execution method: The execution mechanism is the DVC message itself — no code, shell, or file payload is required. The "payload" is the declared length in a DATA_FIRST message, and the primitive is repeated message transmission. To induce meaningful exhaustion, an attacker would send one or more such messages declaring large lengths, potentially across multiple opened dynamic virtual channels or across reconnections, since each declared length drives additional resident memory commitment. The exact number of messages or channel instances required to exhaust a particular deployment depends on the server's configured memory limits and is not specified in the available intelligence.

  4. Post-exploitation impact: Successful exploitation results in resource exhaustion of the RDP server. As zeroed resident memory grows, the server may slow, refuse new connections, or be terminated by the operating system's memory manager (for example, an out-of-memory kill). Affected clients experience failed or degraded remote sessions. There is no stated confidentiality or integrity impact, and no stated lateral movement, code execution, or privilege escalation; the outcome is availability loss (A:H) confined to the vulnerable component (S:U).

Because no exploit code is public, defenders should treat in-the-wild weaponization as unconfirmed; the risk is nonetheless real for internet-exposed or internally reachable RDP endpoints running affected FreeRDP builds.

Impact Assessment

The business impact is denial of remote desktop service for workloads backed by FreeRDP. The CVSS v3.1 vector is CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, base score 6.5, which parses as follows:

  • Attack Vector (Network): The flaw is triggered remotely over the network via the RDP/DVC channel.
  • Attack Complexity (Low): No special conditions or race is required beyond the vulnerable code path being reachable.
  • Privileges Required (Low): The attacker must be an authenticated client — credentials and an established RDP session are necessary.
  • User Interaction (None): The server requires no operator action to trigger the flaw.
  • Scope (Unchanged): The impact is confined to the FreeRDP server component; no cross-component escape is described.
  • Confidentiality/Integrity (None/None): No data disclosure or modification is described.
  • Availability (High): Memory exhaustion can fully deny service.

Blast radius: any host exposing an affected FreeRDP server to untrusted networks is at risk, with severity increased where RDP access is internet-facing or where a single compromised low-privilege account can reach many FreeRDP instances. Shared or memory-constrained server farms are especially sensitive, since a single authenticated client can consume large amounts of resident memory and induce collateral pressure on co-located services. The EPSS score is not yet available from FIRST.org, and this CVE is not listed in CISA KEV, so there is no confirmed exploited-in-the-wild signal at this time.

Detection Guidance

Detection should focus on the FreeRDP server process's memory behavior and on DVC traffic patterns, since the triggering message is only seven bytes and is not intrinsically malformed in a way that is trivial to flag in isolation. The following rules are starting points that require tuning to your environment.

Sigma Rule

title: FreeRDP Server Memory Exhaustion via DATA_FIRST DVC Message (CVE-2026-110832)
id: 9f2b7c41-5a3e-4b7d-9c10-drdynvc00001
status: experimental
description: Detects abnormal resident memory growth in a FreeRDP-based RDP server process, consistent with abuse of wts_read_drdynvc_data_first via DATA_FIRST DVC messages declaring large lengths (CVE-2026-110832).
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-110832
author: valtersit.com
date: 2026-01-01
tags:
  - attack.t1499
  - cve.2026-110832
logsource:
  category: process_metrics
  product: windows
detection:
  selection_process:
    Image|endswith:
      - '\freerdp-server.exe'
      - '\wfreerdp.exe'
      - '\freerdp-shadow-cli.exe'
  timeframe: 5m
  condition: selection_process | near
  # Alert when the matched process working set grows beyond an operator-defined baseline (e.g., >1 GB)
fields:
  - Image
  - WorkingSetSize
  - CommandLine
falsepositives:
  - Legitimate large DVC data transfers (file copy, clipboard, display streaming)
  - Load testing / benchmarking of RDP services
level: medium

Note: the working-set threshold must be tuned to the deployment; FreeRDP process names vary by build, so validate the Image values above against your environment.

YARA Rule

rule CVE_2026_110832_FreeRDP_DVC_DataFirst
{
    meta:
        description = "Detects FreeRDP builds referencing the vulnerable dynamic virtual channel DATA_FIRST handler"
        author = "valtersit.com"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-110832"
        cve = "CVE-2026-110832"
        date = "2026-01-01"

    strings:
        $handler = "wts_read_drdynvc_data_first" ascii wide
        $dvc1 = "DATA_FIRST" ascii wide
        $dvc2 = "drdynvc" ascii wide

    condition:
        uint16(0) == 0x5A4D and any of ($handler, $dvc1, $dvc2)
}

This rule is a binary-string heuristic; it identifies builds containing the named handler/symbol strings and is meant for inventory and triage, not for confirmed exploitation detection.

Suricata IDS Rule

alert tcp any any -> any 3389 ( \
  msg:"CVE-2026-110832 FreeRDP DVC DATA_FIRST large-length memory exhaustion attempt"; \
  flow:established,to_server; \
  content:"|07|"; depth:1; \
  byte_test:4,>,1048576,3; \
  classtype:attempted-dos; \
  reference:cve,2026-110832; \
  reference:url,nvd.nist.gov/vuln/detail/CVE-2026-110832; \
  metadata:service rdp; \
  sid:2026110832; rev:1; )

Caveat: RDP traffic after capability negotiation is typically wrapped in TLS/X.224 layers, so a raw signature may only match unencrypted captures or after TLS inspection. The byte_test offset and threshold are placeholders and must be validated against actual DVC framing for your deployment.

Elastic Detection

process where process.name in ("freerdp-server", "wfreerdp", "freerdp-shadow-cli")
  and process.working_set_size_in_bytes > 1073741824

This EQL watches for FreeRDP server processes exceeding a one-gigabyte working set, which may indicate memory exhaustion abuse. Threshold and process names should be tuned; consider sequencing multiple consecutive memory-growth events to reduce false positives from legitimate bulk data transfer.

Splunk SPL Query

index=endpoint (process_name="freerdp-server" OR process_name="wfreerdp" OR process_name="freerdp-shadow-cli")
| eval mem_mb = working_set_size/1024/1024
| timechart span=1m max(mem_mb) as max_mem_mb by host
| where max_mem_mb > 1024

Pair this with network telemetry if available (for example, Suricata alerts referencing CVE-2026-110832) to correlate sustained memory growth with RDP DVC activity:

index=ids signature="CVE-2026-110832*"
| stats count min(_time) as first_seen max(_time) as last_seen by src_ip dest_ip
| where count > 5

Wazuh OSSEC Rule

<group name="freerdp,cve-2026-110832,">
  <rule id="2026110" level="10">
    <if_sid>530</if_sid>
    <match>wts_read_drdynvc_data_first|CVE-2026-110832</match>
    <description>FreeRDP dynamic virtual channel DATA_FIRST large-length memory exhaustion attempt (CVE-2026-110832)</description>
    <mitre>
      <id>T1499</id>
    </mitre>
  </rule>

  <rule id="2026111" level="12">
    <if_sid>530</if_sid>
    <match>freerdp-server</match>
    <regex>out of memory|OOM|allocation failed|memory exhausted</regex>
    <description>FreeRDP server memory exhaustion or allocation failure possibly linked to CVE-2026-110832</description>
    <mitre>
      <id>T1499</id>
    </mitre>
  </rule>
</group>

These rules depend on log sources that emit the relevant process/log strings; validate that FreeRDP process names and OOM messages are captured in your deployment.

Mitigation & Patch Guidance

Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source). No vendor fix, official workaround, or affected-package data was provided. Per the NVD description, the vulnerability is present from 2.0.0 before 3.32.0, implying version 3.32.0 resolves it; however, because no patch source was confirmed, the following guidance should be treated as provisional and the 3.32.0 fixed version must be verified directly with the FreeRDP project before relying on it.

  1. Immediate mitigations:

    • Enforce authentication and least privilege on all RDP endpoints. The flaw requires an authenticated client (PR:L), so restricting who can open RDP/DVC sessions narrows the attack surface and reduces the pool of potential attackers.
    • Place FreeRDP-backed RDP servers behind network access controls (VPN, jump hosts, firewall allowlists) so that untrusted networks cannot reach the service directly. Remove any internet-facing RDP exposure.
    • Apply process-level memory limits or cgroup resource constraints on the FreeRDP server process to cap the blast radius of a single exhausting client and protect co-located services.
    • Enforce per-account concurrent session limits and monitor for anomalous reconnection or DVC-churn behavior, which may accompany resource-exhaustion attempts.
    • Deploy the network and host detections above to gain early warning and to validate exposure.
  2. Patch/upgrade steps:

    • Verify the exact fixed version with the FreeRDP project. The NVD description indicates the issue is resolved in 3.32.0; upgrade affected deployments to 3.32.0 or later once the fix is confirmed.
    • Track the CVE and vendor channels for an authoritative advisory and commit reference, which are not currently available in the provided intelligence.
    • Before upgrading, inventory all systems running FreeRDP 2.0.0 through before 3.32.0, including thin clients, gateways, and embedded or shadow-server deployments.
    • After upgrading, re-run the above detections to confirm memory behavior has normalized and that the vulnerable code path is no longer reachable.
  3. Long-term hardening:

    • Maintain an inventory and version-tracking process for RDP server components so affected builds are identified promptly when advisories are published.
    • Adopt resource governance (memory ceilings, session caps, rate limiting) for all remote-access services by default, treating resource-exhaustion as a standing risk class.
    • Minimize third-party RDP exposure to untrusted networks and adopt a zero-trust access model for remote desktop services.
    • Monitor for repeated availability-affecting events and treat sustained memory growth in RDP processes as a security-relevant signal, not merely an operational one.

References

No threat actor campaigns and no exploit-in-the-wild evidence were identified. The CVE is not listed in CISA KEV, no public PoC or exploit code is available, and no Nuclei template was found. EPSS scoring was not yet published by FIRST.org at the time of this report.

👁️ 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" "2.0.0"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-110832/ · 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.