CVE-2019-0708

Microsoft RDP 'BlueKeep' — Use-After-Free in Remote Desktop Services Allows Wormable Pre-Auth Remote Code Execution
🔥 CVSS 3.1  9.8 / 10 — CRITICAL 🔴 CISA Known Exploited Vulnerability

Overview

Actively Exploited. This vulnerability has been added to CISA's Known Exploited Vulnerabilities (KEV) Catalog on November 3, 2021. Federal agencies are required to apply mitigations per BOD 22-01.

CVE-2019-0708, nicknamed "BlueKeep," is a critical pre-authentication remote code execution vulnerability in Windows Remote Desktop Services (RDS), the service providing the Remote Desktop Protocol (RDP). Exploitable with no credentials and no user interaction, the vulnerability is wormable — capable of self-propagating across networks in the manner of WannaCry. The U.S. NSA, UK NCSC, Canadian CCCS, and CISA issued coordinated public warnings upon disclosure, describing the potential for a catastrophic ransomware or worm outbreak if widely weaponized.

Despite the severity, mass exploitation proved technically challenging: achieving reliable remote code execution requires precise kernel heap grooming that varies across Windows versions and patch levels. Exploitation was confirmed in late 2019 primarily via cryptomining payloads rather than destructive worms. BlueKeep is a reminder that the gap between theoretical wormability and practical mass exploitation depends heavily on exploit engineering difficulty.

What Is Windows Remote Desktop Services?

Remote Desktop Services (RDS), formerly Terminal Services, provides the RDP protocol allowing users to remotely access a Windows desktop or server over the network. TCP port 3389 is the default RDP listener. RDS is one of the most exposed Windows services on the internet — Shodan typically shows millions of hosts with port 3389 open — and has been a consistent source of critical vulnerabilities.

Affected Versions

Windows Version Vulnerable Notes
Windows XP Yes EOL — emergency out-of-band patch issued
Windows Vista Yes Patched in May 2019 Patch Tuesday
Windows 7 Yes Patched in May 2019 Patch Tuesday
Windows Server 2003 Yes EOL — emergency out-of-band patch issued
Windows Server 2008 Yes Patched in May 2019 Patch Tuesday
Windows Server 2008 R2 Yes Patched in May 2019 Patch Tuesday
Windows 8 / 8.1 Not affected Different RDP implementation
Windows 10 Not affected Different RDP implementation
Windows Server 2012 / 2012 R2 Not affected Different RDP implementation
Windows Server 2016 / 2019 Not affected Different RDP implementation

Critically, the vulnerability only affects older Windows versions. Windows 8, 10, and Server 2012+ use a different RDP implementation that is not affected. This limited the immediate worm potential compared to EternalBlue, which affected more current systems.

Technical Details

Root Cause: Use-After-Free in MS_T120 Channel Handling

The RDP protocol uses virtual channels to carry different data streams. BlueKeep is a use-after-free (CWE-416) vulnerability in the handling of the MS_T120 channel — an internal channel that should only be bound to channel 31, but which can be bound to additional channels by a malicious client. When the RDP connection is torn down, the MS_T120 channel object is freed, but the additional channel bindings retain pointers to the freed memory. Subsequent operations on those channels reference the freed (and potentially reallocated) memory, allowing kernel heap manipulation.

Exploitation: Kernel Heap Grooming

Achieving reliable RCE from a use-after-free in the kernel requires careful heap grooming:

  1. Connect to the RDP service without authenticating — the vulnerability is pre-auth.
  2. Bind the MS_T120 channel to multiple virtual channels during the RDP connection sequence.
  3. Trigger the channel teardown to free the MS_T120 object while retaining dangling pointers.
  4. Spray the kernel heap with controlled allocations to occupy the freed memory with attacker-controlled data.
  5. Trigger a use of the freed pointer, which now points to attacker data, allowing control of kernel execution.

The heap grooming is architecture- and version-specific, making reliable exploitation significantly harder than for buffer overflow or JNDI injection vulnerabilities. Reliable exploits target specific Windows 7 / Server 2008 R2 build numbers.

Why It Was Called "Wormable"

A worm using BlueKeep would:

  1. Scan for hosts with TCP port 3389 open.
  2. Exploit the vulnerability without any user interaction.
  3. Install a payload and scanning module to propagate further.

The internet has millions of publicly exposed RDP hosts. A reliable, weaponized BlueKeep worm would have had EternalBlue-scale impact. The difficulty of reliable kernel heap exploitation across heterogeneous environments was the primary factor that prevented a WannaCry-like event.

Attack Characteristics

Attribute Detail
Attack Vector Network — TCP port 3389 (RDP)
Authentication Required None — pre-authentication exploit
User Interaction Required None — wormable
Affected Systems Windows 7, Server 2008 and earlier only
Exploit Complexity High in practice — requires precise kernel heap grooming per target version

Discovery

Microsoft discovered the vulnerability internally. No external researcher was credited. Microsoft took the unusual step of patching Windows XP and Windows Server 2003 — both long past end-of-life — given the potential worm impact. The simultaneous warnings from NSA, NCSC, CCCS, and CISA were historically unusual and underscored the industry's concern about a WannaCry-repeat scenario.

Exploitation Context

  • First mass exploitation: November 2, 2019 — a scanning and exploitation campaign was detected deploying cryptocurrency miners (not ransomware) via BlueKeep
  • Metasploit module (September 2019): Enabled broad access to reliable exploitation capability; the module was contributed by researcher zerosum0x0 who had developed it independently
  • Cryptomining focus: The first observed exploitation campaigns prioritized cryptocurrency mining over ransomware — possibly reflecting the technical difficulty of achieving fully reliable RCE
  • Ongoing exposure: Millions of Windows 7 and Server 2008 hosts with RDP exposed remained unpatched long after disclosure; BlueKeep scanning remained a constant in internet background noise
  • Combined with credential attacks: BlueKeep was frequently observed alongside RDP brute-force campaigns, giving attackers multiple paths to compromise exposed RDP hosts

Remediation

CISA BOD 22-01 Deadline: May 3, 2022. Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.

Recommended Actions

  1. Apply the May 2019 Patch Tuesday update (KB4499175 for Windows 7 / Server 2008 R2) or the out-of-band patches for Windows XP / Server 2003. Verify: systeminfo | findstr KB4499175.

  2. Disable RDP if not required. Most servers have no legitimate need for externally exposed RDP.

  3. Block TCP port 3389 at the perimeter firewall. RDP should never be exposed directly to the internet. If remote access is required, place RDP behind a VPN or use RD Gateway.

  4. Enable Network Level Authentication (NLA). NLA requires users to authenticate before establishing an RDP session, which prevents unauthenticated exploitation of BlueKeep and limits exposure to other RDP vulnerabilities. Enable via: System Properties → Remote → "Allow connections only from computers running Remote Desktop with Network Level Authentication."

  5. Migrate off Windows 7 / Server 2008. These operating systems reached end-of-life in January 2020. Systems that cannot receive regular security updates represent a permanent unmitigated risk.

  6. Monitor for BlueKeep exploitation: Look for failed RDP connections followed by successful connections from the same IP, unusual processes spawned under the RDP service (svchost.exe with termdd.sys), or Event ID 4625/4624 patterns indicating brute-force followed by compromise.

Key Details

PropertyValue
CVE ID CVE-2019-0708
Vendor / Product Microsoft — Remote Desktop Services
NVD Published2019-05-16
NVD Last Modified2025-10-29
CVSS 3.1 Score9.8
CVSS 3.1 VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
SeverityCRITICAL
CWE CWE-416 — Use After Free
CISA KEV Added2021-11-03
CISA KEV Deadline2022-05-03
Known Ransomware Use ⚠️ Yes

CVSS 3.1 Breakdown

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Required Action

CISA BOD 22-01 Deadline: 2022-05-03. Apply updates per vendor instructions.

Timeline

DateEvent
2019-05-14Microsoft releases patch for CVE-2019-0708 in May 2019 Patch Tuesday; emergency patches issued for Windows XP and Server 2003 (EOL)
2019-05-16CVE-2019-0708 published; NSA, NCSC, CCCS, and CISA issue rare public warnings about wormability
2019-09-06Metasploit module for BlueKeep published by Rapid7 (zerosum0x0)
2019-11-02First BlueKeep mass exploitation campaign detected; primarily delivering cryptocurrency miners via EternalPot/rdpscan
2021-11-03Added to CISA Known Exploited Vulnerabilities catalog
2022-05-03CISA BOD 22-01 remediation deadline