May 3, 2026·6 min read·31 visits
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.
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.
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.
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 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.
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.
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.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H| Product | Affected Versions | Fixed Version |
|---|---|---|
Windows 7 Microsoft | SP1 | KB4499175 |
Windows Server 2008 R2 Microsoft | SP1 | KB4499175 |
Windows Server 2008 Microsoft | SP2 | KB4499180 |
Windows XP Microsoft | SP3 | KB4500331 |
Windows Server 2003 Microsoft | SP2 | KB4500331 |
| Attribute | Detail |
|---|---|
| CWE ID | CWE-416 |
| Attack Vector | Network (Pre-authentication RDP) |
| CVSS v3.1 | 9.8 CRITICAL |
| EPSS Score | 0.94454 (99.99%) |
| Impact | System-level RCE |
| Exploit Status | Active Exploitation |
| KEV Listed | Yes |
Referencing memory after it has been freed, which can cause a program to crash, use unexpected values, or execute code.
CVE-2024-29203 identifies a cross-site scripting (XSS) vulnerability in the content ingestion and parsing mechanics of TinyMCE rich text editor. Due to a failure to enforce sandbox attributes on dynamic iframe elements and safely handle legacy embed objects, unauthenticated attackers can inject malicious elements that execute scripts within the context of the parent application session.
A technical breakdown of the OS command injection vulnerability in the shell-quote NPM package (CVE-2026-9277 / GHSA-w7jw-789q-3m8p). The bug resides in the character-by-character backslash-escaping logic applied to the .op field of object-tokens within the quote() function, which fails to match and escape line terminators due to a regex matching oversight in JavaScript. This allows unauthenticated remote attackers to execute arbitrary shell commands if they can control inputs processed by this library.
A high-severity memory corruption vulnerability exists in the V8 JavaScript engine of Google Chrome before versions 149.0.7827.102/103. The flaw arises from an incorrect bounds-check elimination during JIT compilation by the TurboFan optimizer, allowing remote attackers to achieve out-of-bounds read and write access inside the sandboxed renderer process.
An improper authentication vulnerability (CWE-287) exists in the legacy, deprecated Internet Key Exchange version 1 (IKEv1) key exchange protocol implementation in Check Point Security Gateways. The vulnerability is caused by a logic flow weakness during the certificate validation process for Remote Access VPN and Mobile Access (SSL VPN) connections. An unauthenticated remote attacker can exploit this weakness to bypass user authentication entirely, establishing a fully functional Remote Access VPN connection without a valid password.
GeoNode versions prior to 4.4.5 and 5.0.2 are vulnerable to Server-Side Request Forgery (SSRF) in the service registration endpoint. Authenticated attackers with low privileges can exploit insufficient input validation in the Web Map Service (WMS) registration module to force the application server to make outbound network queries to loopback addresses, private RFC1918 subnets, link-local scopes, and cloud metadata endpoints. This technical report details the mechanics of the vulnerability, the underlying architectural flaw, and how to effectively remediate and mitigate the associated security risks.
CVE-2022-0492 is a high-severity missing authorization vulnerability in the Linux kernel's Control Groups (cgroups) v1 implementation. The flaw resides within the cgroup_release_agent_write function in kernel/cgroup/cgroup-v1.c, where the kernel fails to validate if the process writing to the release_agent file possesses administrative capabilities in the initial user namespace. This allows a local attacker inside a container with root privileges (UID 0) to abuse user namespaces, mount a cgroups v1 directory, modify the release_agent parameter, and execute arbitrary commands on the host system as host root, effectively achieving a complete container escape.