CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2019-0708

CVE-2019-0708: Unauthenticated Remote Code Execution in Windows Remote Desktop Services (BlueKeep)

Alon Barad
Alon Barad
Software Engineer

May 3, 2026·6 min read·55 visits

Executive Summary (TL;DR)

BlueKeep is a pre-authentication, wormable remote code execution vulnerability in Windows Remote Desktop Services. Attackers trigger a use-after-free in termdd.sys by manipulating RDP virtual channel binding during the initial connection sequence.

A critical use-after-free (UAF) vulnerability exists in the Windows kernel driver termdd.sys, which processes Remote Desktop Protocol (RDP) connections. The flaw allows an unauthenticated attacker to execute arbitrary code with systemic privileges by binding the internal MS_T120 virtual channel to an arbitrary static index.

Vulnerability Overview

CVE-2019-0708, commonly referred to as BlueKeep, is a critical use-after-free vulnerability located in the Windows Remote Desktop Services (RDS) component. It resides specifically within the Windows kernel driver termdd.sys, which handles the negotiation and management of the Remote Desktop Protocol (RDP). The vulnerability triggers prior to authentication and requires zero user interaction.

The issue affects older versions of the Windows operating system, including Windows 7, Windows Server 2008, and Windows Server 2008 R2. Microsoft issued out-of-band patches for unsupported operating systems such as Windows XP and Windows Server 2003 due to the severity of the flaw. Embedded systems utilized in medical and industrial sectors running these legacy operating system versions inherit the vulnerability.

Successful exploitation yields unauthenticated Remote Code Execution (RCE) with kernel-level privileges. An attacker can execute arbitrary code, install programs, view, change, or delete data, or create new accounts with full system rights. The flaw is classified as wormable, meaning a successful exploit can propagate laterally between vulnerable systems automatically using the same RDP vector.

Root Cause Analysis

The root cause of the vulnerability is a use-after-free (UAF) condition within the termdd.sys driver. RDP utilizes virtual channels to handle specific data streams such as audio routing, clipboard sharing, and printer redirection. These virtual channels negotiate and initialize during the early stages of an RDP connection sequence.

One specific internal channel is MS_T120, which is utilized for the Multipoint Communication Service (MCS) and internal conference control. Under normal operation, the Windows system assigns the MS_T120 channel to internal slot index 31. The vulnerability occurs because the server does not restrict an unauthenticated client from manually binding the MS_T120 channel to an arbitrary static index during the MCS Connect Initial phase.

Binding the internally managed MS_T120 channel to a static channel index requested by the client creates a dual-reference state. The system establishes two pointers to the identical channel object in memory. When the client disconnects or issues a channel release command, the termdd.sys driver invokes the IcaFreeChannel function.

The double reference forces IcaFreeChannel to free the identical memory allocation twice. Attackers manipulate the memory layout using kernel heap grooming techniques before triggering the secondary free or a subsequent use of the freed object. Controlling the contents of this freed memory block allows the attacker to hijack the kernel execution flow and redirect it to attacker-controlled shellcode.

Code & Architecture Analysis

The structural flow of the vulnerability execution highlights the interaction between external network inputs and internal kernel memory management. The vulnerability targets the kernel-level components responsible for processing early RDP protocol negotiations before authentication verification occurs.

Network scanners identify the vulnerability without crashing the system by initiating the binding sequence and cleanly terminating the connection before heap corruption occurs. The auxiliary/scanner/rdp/cve_2019_0708_bluekeep module in Metasploit tests the system response to the MS_T120 static binding request. Systems returning standard channel acceptance confirm vulnerability status.

The patch implemented by Microsoft modifies termdd!IcaBindVirtualChannel to enforce strict string comparisons. The updated code validates the requested channel name against a hardcoded list of internal channels. If a client attempts to bind the MS_T120 string to a static channel, the driver rejects the connection, preventing the dual-reference initialization entirely.

Exploitation

Exploitation sequences begin with standard network discovery to identify hosts exposing RDP on TCP port 3389. The attacker initiates a standard RDP connection handshake by sending an X.224 Connection Request. The server responds with a Connection Confirm, entering the MCS negotiation phase.

During the MCS Connect Initial phase, the attacker constructs a crafted packet requesting the server to bind the MS_T120 channel to a static, attacker-defined index, such as index 4. The vulnerable server processes this request and binds the channel, establishing the dual-reference condition required for the vulnerability.

Attackers then execute heap grooming to control the kernel memory layout. This process involves transmitting large volumes of specific RDP Protocol Data Units (PDUs), typically utilizing the Sound or Bitmap virtual channels. The objective is to allocate attacker-controlled data blocks precisely where the MS_T120 channel object resides in memory after the initial free operation.

To trigger the payload, the attacker sends a disconnect command or a channel close PDU. The termdd!IcaFreeChannel function executes, causing the system to dereference the attacker-controlled memory block. If the heap spray aligned correctly, the kernel context executes the embedded shellcode, granting system compromise.

Impact Assessment

The CVSS v3.1 base score for CVE-2019-0708 is 9.8 (CRITICAL), reflecting the pre-authentication network vector and the resulting total loss of confidentiality, integrity, and availability. Exploitation grants attackers NT AUTHORITY\SYSTEM privileges directly in kernel space, bypassing standard user-mode security controls entirely.

The vulnerability is highly persistent and actively exploited. The EPSS score of 0.94454 places it in the 99.99th percentile for exploitation probability. The Cybersecurity and Infrastructure Security Agency (CISA) added BlueKeep to the Known Exploited Vulnerabilities (KEV) catalog due to widespread deployment by threat actors and advanced persistent threat (APT) groups.

Secondary exposure heavily impacts industrial and medical environments. Vendors including Siemens and Huawei documented numerous specialized devices running embedded versions of vulnerable Windows operating systems. These devices often lack standardized update mechanisms, extending the vulnerability lifespan significantly across critical infrastructure.

Ransomware operators leverage BlueKeep as an initial access vector and for lateral movement. The wormable nature of the vulnerability facilitates rapid autonomous proliferation across segmented internal networks. Compromised systems frequently exhibit BugCheck (Blue Screen of Death) events if the kernel heap spray fails, resulting in severe denial-of-service conditions.

Remediation

Complete remediation requires applying the specific KB updates provided by Microsoft for the affected operating systems. Microsoft released patches in the May 2019 update cycle covering Windows 7, Server 2008, and Server 2008 R2. Administrators managing legacy environments must apply the out-of-band updates published for Windows XP and Windows Server 2003.

Enabling Network Level Authentication (NLA) serves as an effective configuration mitigation against unauthenticated attacks. NLA mandates user authentication prior to establishing the RDP session and initiating the virtual channel negotiation phase. This configuration prevents an attacker without valid credentials from reaching the vulnerable termdd.sys code path.

Administrators must enforce strict network access controls to reduce the exposed attack surface. RDP services must remain inaccessible from the public internet. Firewalls should drop incoming connections to TCP port 3389 originating from untrusted networks.

Network segmentation isolates vulnerable endpoints in scenarios where patching is technically infeasible. Vulnerable industrial or medical devices must operate on isolated virtual LANs (VLANs). Security teams should deploy Intrusion Detection Systems (IDS) configured with specific Snort or Suricata rules to monitor for MS_T120 channel bind attempts in MCS Connect Initial packets.

Official Patches

MicrosoftMicrosoft Security Guidance for CVE-2019-0708

Technical Appendix

CVSS Score
9.8/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
EPSS Probability
94.45%
Top 0% most exploited

Affected Systems

Windows 7Windows Server 2008Windows Server 2008 R2Windows XPWindows Server 2003Siemens Medical DevicesHuawei Embedded Systems

Affected Versions Detail

Product
Affected Versions
Fixed Version
Windows 7
Microsoft
SP1KB4499175
Windows Server 2008 R2
Microsoft
SP1KB4499175
Windows Server 2008
Microsoft
SP2KB4499180
Windows XP
Microsoft
SP3KB4500331
Windows Server 2003
Microsoft
SP2KB4500331
AttributeDetail
CWE IDCWE-416
Attack VectorNetwork (Pre-authentication RDP)
CVSS v3.19.8 CRITICAL
EPSS Score0.94454 (99.99%)
ImpactSystem-level RCE
Exploit StatusActive Exploitation
KEV ListedYes

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1068Exploitation for Privilege Escalation
Privilege Escalation
T1210Exploitation of Remote Services
Lateral Movement
CWE-416
Use After Free

Referencing memory after it has been freed, which can cause a program to crash, use unexpected values, or execute code.

Known Exploits & Detection

MetasploitMetasploit BlueKeep Scanner and RCE Module
GitHubPython-based PoC
GitHubPre-auth RCE PoC for Windows 7
GitHubC-based scanner for identifying BlueKeep at scale

Vulnerability Timeline

Microsoft releases patches for CVE-2019-0708 and issues an unusual out-of-band warning.
2019-05-14
Detailed technical analysis published by MalwareTech and other researchers.
2019-05-31
NSA and CISA issue advisories urging users to patch.
2019-06-04
Metasploit releases a public, weaponized exploit module.
2019-09-06
First reports of BlueKeep exploitation in the wild.
2019-11-02
Added to CISA KEV catalog.
2021-11-03

References & Sources

  • [1]Microsoft Security Advisory
  • [2]ZDI Technical Analysis
  • [3]Palo Alto Unit 42 Analysis
  • [4]CISA KEV Catalog

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 1 hour ago•CVE-2026-69216
5.4

CVE-2026-69216: HTTP Request/Response Smuggling in http4s Ember Parser

An HTTP Request/Response Smuggling vulnerability (CVE-2026-69216) was identified in the Ember chunked transfer encoding decoder of the http4s Scala library. Due to parser leniency accepting sign prefixes, surrounding whitespace, and missing trailing CRLFs, attackers can bypass proxy security boundaries, poison shared caches, or hijack request queues.

Amit Schendel
Amit Schendel
0 views•5 min read
•about 2 hours ago•CVE-2026-69218
7.5

CVE-2026-69218: Denial of Service via Unbounded HTTP/2 Continuation Frame Buffering in http4s Ember

A critical resource exhaustion vulnerability exists in the http4s Ember HTTP/2 server and client implementations. By failing to limit the size or quantity of incoming HTTP/2 CONTINUATION frames, the engine allows unauthenticated remote attackers to exhaust JVM heap memory, causing a complete Denial of Service.

Amit Schendel
Amit Schendel
2 views•7 min read
•about 3 hours ago•CVE-2026-69201
5.9

CVE-2026-69201: Path Traversal and Directory Escape in http4s Static Content Services

CVE-2026-69201 is a critical directory traversal vulnerability in the http4s Scala library. Affected versions of ResourceService and WebjarService allow attackers to escape the configured resource directory and access arbitrary files on the classpath or filesystem by using percent-encoded path separators. The flaw arises from decoding URL segments prior to validating them against directory escape patterns.

Alon Barad
Alon Barad
4 views•8 min read
•about 4 hours ago•CVE-2026-61544
8.2

CVE-2026-61544: Remote Panic in libp2p-quic via Certificate Expiry Race

CVE-2026-61544 is a high-severity remote Denial of Service (DoS) vulnerability in libp2p-quic, the QUIC transport implementation of the official Rust networking stack for libp2p. It allows unauthenticated remote attackers to trigger an uncaught panic and crash listener applications.

Alon Barad
Alon Barad
4 views•7 min read
•about 5 hours ago•CVE-2026-88975
7.5

CVE-2026-88975: Heap Memory Exhaustion via Malicious HTTP/2 Frame Size in http4s Ember

An uncontrolled resource consumption vulnerability in the http4s Ember HTTP/2 server and client implementation leads to unauthenticated heap memory exhaustion and denial of service. The vulnerability stems from deferring frame size validation until the entire declared payload size is buffered.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 6 hours ago•CVE-2026-61554
7.5

CVE-2026-61554: Uncontrolled Resource Consumption in emp3r0r C2 http_poll Transport

CVE-2026-61554 is a high-severity uncontrolled resource consumption vulnerability in the http_poll transport component of the emp3r0r Command and Control (C2) framework. In affected versions prior to 4.2.5, the C2 server allocates session tracking resources, spawns execution routines, and routes incoming unauthenticated request bodies into the core dispatch engine before verifying the client's cryptographic authentication token. This logical ordering flaw allows unauthenticated remote attackers to exhaust critical host system resources and trigger a sustained denial of service.

Amit Schendel
Amit Schendel
6 views•6 min read