← Back to Feed CACHED · 2026-07-10 08:52:29 · CACHE_KEY tenable:125313
tenable:125313 · CWE-416 · Disclosed 2019-05-14

Microsoft RDP RCE

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

A seven-year-old wormable pre-auth RCE that Microsoft literally back-ported to Windows XP because they were scared of a WannaCry sequel

CVE-2019-0708 is a use-after-free in termdd.sys, the kernel-mode driver behind Remote Desktop Services. A remote, unauthenticated attacker sends a crafted request over channel MS_T120 during RDP protocol setup — before any credential prompt — and gains SYSTEM-level code execution in ring 0. Affected: Windows XP, Windows Server 2003, Windows 7 SP1, Windows Server 2008, and Windows Server 2008 R2. Windows 8/2012 and later are not vulnerable due to changes in how virtual channels are bound.

The vendor CRITICAL rating is entirely correct and if anything understated by the CVSS number. This bug is wormable (Microsoft compared it to EternalBlue), requires no authentication, no user interaction, and delivers kernel RCE against the single most-exposed remote-management protocol in the Windows ecosystem. Microsoft took the extraordinary step of shipping a patch for out-of-support Windows XP and Server 2003 — they only do that when they think the internet is about to burn.

"BlueKeep is KEV-listed, wormable, pre-auth RCE on RDP. If it's exposed and unpatched in 2026, you have bigger problems."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Discover exposed RDP

Attacker scans TCP/3389 for reachable Windows RDP endpoints. Shodan and Censys have persistent public inventories; internal attackers use masscan or nmap -sS -p3389. Fingerprint the target as legacy Windows (7/2008/XP/2003) via the RDP negotiation banner or rdp-enum-encryption NSE script.
Conditions required:
  • TCP/3389 reachable from attacker
  • Target is Windows 7 / Server 2008(R2) / XP / Server 2003
Where this breaks in practice:
  • NLA (Network Level Authentication) enabled blocks the vulnerable code path
  • Perimeter firewalls typically block 3389 inbound
  • VPN-gated RDP access is now standard in most enterprises
Detection/coverage: Tenable plugin 125313 (this one), Qualys QID 91541, Rapid7 R7 check, Nessus BlueKeep scanner, Microsoft's own bluekeep-scanner
STEP 02

Trigger the MS_T120 UAF

Attacker uses the public Metasploit module exploit/windows/rdp/cve_2019_0708_bluekeep_rce or the RiskSense/zerosum0x0 PoC to send crafted virtual-channel bind requests against MS_T120. The bug frees the channel object but leaves a dangling pointer; a follow-up write reuses the freed memory with attacker-controlled data.
Conditions required:
  • Vulnerable termdd.sys version
  • NLA disabled or bypassed
  • Reliable heap grooming (target-specific)
Where this breaks in practice:
  • The public Metasploit exploit is notoriously unstable — BSODs are the norm rather than the exception
  • Reliable exploitation requires knowing the exact target build and NPP layout
Detection/coverage: Suricata/Snort ET rules for BlueKeep, EDR kernel-callback telemetry on termdd.sys, Windows Event 1149 anomalies
STEP 03

Kernel code execution as SYSTEM

Successful UAF pivots to arbitrary kernel-mode execution. Shellcode disables DSE / patches nt!SeCiCallbacks, then either drops to userland as SYSTEM or stays in-kernel for stealth. No token theft required — you *are* the kernel.
Conditions required:
  • Successful step 2 without BSOD
Where this breaks in practice:
  • KASLR / SMEP on Server 2008 R2 forces bespoke ROP
  • HVCI (not present on affected OS versions) would block but is irrelevant here
Detection/coverage: EDR kernel-mode agents (CrowdStrike, SentinelOne, Defender for Endpoint) alert on unsigned kernel writes and termdd.sys anomalies
STEP 04

Worm propagation

Attacker's implant scans the local subnet and adjacent RFC1918 space for further RDP-exposed legacy hosts and repeats. This is the WannaCry / NotPetya replay scenario. In the real 2019-2020 wave, the mass BlueKeep exploitation attributed to watchbog was cryptomining — not because the bug wasn't wormable, but because criminals monetized before nation-states weaponized.
Conditions required:
  • Multiple vulnerable hosts on reachable segments
  • Payload with self-propagation logic
Where this breaks in practice:
  • Modern segmentation (VLAN isolation of legacy servers)
  • EDR blocks lateral SMB/RDP from unusual sources
Detection/coverage: SIEM anomaly on east-west 3389 traffic, EDR lateral-movement detections
03 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationConfirmed. Mass cryptomining campaigns (watchbog, purple team activity) since Nov 2019. Ongoing opportunistic scanning through 2026.
CISA KEVListed — added 2021-11-03. Federal remediation deadline was 2022-05-03.
EPSS~0.94 (99th percentile) — one of the highest-scoring CVEs in the entire dataset.
Public PoCMetasploit cve_2019_0708_bluekeep_rce (rlarabee, zerosum0x0), zerosum0x0/CVE-2019-0708, RiskSense PoC. Reliable exploitation code has been public since Sept 2019.
CVSS 3.1 vectorAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 9.8 CRITICAL. Network, no auth, no user interaction, full CIA impact — the archetype of a wormable RCE.
Affected versionsWindows XP SP3, Server 2003, Windows 7 SP1, Server 2008 SP2, Server 2008 R2 SP1, Windows Embedded POSReady 2009, WES09. Windows 8/8.1/10 and Server 2012+ are not vulnerable.
Fixed versionsMay 2019 Patch Tuesday: KB4499164 / KB4499175 (Win7/2008 R2), KB4499180 (2008), plus the out-of-band XP/2003 fix. Also mitigated by enabling NLA.
Exposure (Shodan/Censys)Shodan still reports tens of thousands of publicly exposed RDP hosts fingerprinting as Windows 7/2008. The number has fallen ~90% since 2019 but the long tail is stubborn (OT, kiosks, unmanaged branch servers).
Disclosure2019-05-14 (Patch Tuesday). Reported to Microsoft by the UK NCSC.
Impact classPre-auth kernel RCE, wormable. Sits alongside MS17-010 (EternalBlue) and MS08-067 (Conficker) in the pantheon of wormable Windows RCEs.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to CRITICAL (9.8/10)

This is a KEV-listed, wormable, pre-authentication kernel RCE in the single most-targeted remote-access protocol on Windows, with public weaponized exploits and confirmed in-the-wild exploitation. The single decisive factor is active KEV listing combined with a wormable pre-auth network vector on a still-deployed legacy OS footprint.

HIGH exploitability and impact — kernel RCE, public exploits, active KEV
HIGH affected version identification — Microsoft's advisory is unambiguous
MEDIUM residual exposure in a mature 2026 enterprise — most orgs patched years ago, but OT/legacy pockets remain

Why this verdict

  • KEV-listed and actively exploited: CISA added this to KEV in 2021 based on confirmed in-the-wild use. Cryptomining crews weaponized it within months of disclosure.
  • Pre-auth, network-adjacent, wormable: No credentials, no user interaction, one packet against TCP/3389 — the exact profile that produced WannaCry.
  • Role multiplier — legacy Windows servers: In 2026 the affected OS footprint is disproportionately RDP jump boxes, OT/HMIs, medical imaging consoles, ATMs, POS controllers, and unmanaged Server 2008 R2 line-of-business hosts. Compromise of any one of these is fleet-scale or safety-scale, not local.
  • Role multiplier — domain-joined legacy hosts: SYSTEM on a domain-joined Server 2008 R2 is a straight path to cached credentials, DPAPI secrets, and lateral movement to a DC. The chain ends in domain compromise. Floor is CRITICAL.
  • Friction is limited: NLA mitigates but is not universally deployed on the affected OS versions; the Metasploit exploit is unreliable, but nation-state and mature crime groups don't use the public module.

Why not higher?

CRITICAL / 9.8 is already the top of the scale under CVSS 3.1. There is no higher bucket to promote to.

Why not lower?

Downgrading would require ignoring KEV status, ignoring the wormable pre-auth vector, and ignoring the concentration of the affected OS footprint in high-value roles (OT, jump boxes, domain-joined legacy servers). Even in 2026, the Shodan long tail and the OT reality make this a legitimate CRITICAL. The unreliability of the public Metasploit module is a speed bump, not a mitigation.

05 · Compensating Control

What to do — in priority order.

  1. Enable Network Level Authentication (NLA) on every remaining RDS host — NLA forces CredSSP authentication before the vulnerable virtual-channel setup runs, breaking the exploit path. Set via GPO Computer Configuration → Admin Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Security → Require user authentication for remote connections by using NLA. Deploy within 3 days per the noisgate CRITICAL mitigation SLA.
  2. Block TCP/3389 at the perimeter and force RDP through a bastion/VPN with MFA — Removes internet-reachable exposure entirely. Confirm via external attack-surface tooling (Censys, Shodan Monitor) that no 3389/UDP-3389 endpoints resolve to your ASN. Complete within 3 days.
  3. Segment legacy Windows OT / medical / kiosk hosts onto isolated VLANs — The 2026 vulnerable population is concentrated in OT, medical, retail, and industrial fleets that cannot be patched. Wrap them in strict east-west ACLs so only named jump hosts can reach 3389. Complete within 30 days.
  4. Disable Remote Desktop Services where not requiredSet-Service TermService -StartupType Disabled; Stop-Service TermService on hosts that don't need it. Fastest permanent fix.
  5. Apply KB4499164 / KB4499175 / KB4499180 (or the XP/2003 out-of-band patch) — The permanent fix. Remediate every affected host within 90 days per the noisgate CRITICAL remediation SLA.
What doesn't work
  • Windows Firewall rules that allow 3389 from 'trusted' subnets — any compromised workstation inside the trusted subnet becomes the launchpad for wormable propagation.
  • Changing the RDP port to something other than 3389 — the vulnerability is in the protocol, not the port. masscan --banners finds RDP on any port in minutes.
  • Relying on EDR alone on Server 2008 / Windows 7 — kernel-mode telemetry on these EOL OS versions is patchy at best, and the exploit runs in ring 0.
  • Account lockout policies — the bug triggers pre-authentication, before any password is ever tried.
06 · Verification

Crowdsourced verification payload.

Run on the target Windows host as a local Administrator (needed to read installed hotfixes and the RDP NLA registry setting). Invoke: powershell -ExecutionPolicy Bypass -File .\Check-BlueKeep.ps1. For fleet-wide use, wrap in Invoke-Command -ComputerName (Get-Content hosts.txt) -FilePath .\Check-BlueKeep.ps1.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#requires -RunAsAdministrator
# Check-BlueKeep.ps1 — CVE-2019-0708 (BlueKeep) presence check
# Exit codes: 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN / not applicable

$ErrorActionPreference = 'Stop'

try {
    $os = Get-CimInstance Win32_OperatingSystem
    $ver = [Version]$os.Version
    $caption = $os.Caption

    # Only XP, 2003, Win7, Server 2008, Server 2008 R2 are vulnerable
    $affected = $false
    if ($ver.Major -eq 5) { $affected = $true }                        # XP / 2003
    elseif ($ver.Major -eq 6 -and $ver.Minor -in 0,1) { $affected = $true }  # Vista/2008/Win7/2008R2

    if (-not $affected) {
        Write-Host "PATCHED — $caption is not in the affected OS family"
        exit 0
    }

    # Fixing KBs from MS advisory (May 2019 + follow-ups)
    $fixKBs = @('KB4499164','KB4499175','KB4499180','KB4500331',
                'KB4501226','KB4503273','KB4503292','KB4507449','KB4507456')

    $installed = Get-HotFix -ErrorAction SilentlyContinue | Select-Object -ExpandProperty HotFixID
    $found = $fixKBs | Where-Object { $installed -contains $_ }

    # NLA state — mitigates even if unpatched
    $nla = (Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -ErrorAction SilentlyContinue).UserAuthentication

    if ($found) {
        Write-Host "PATCHED — hotfix present: $($found -join ', ')"
        exit 0
    }
    elseif ($nla -eq 1) {
        Write-Host "VULNERABLE (mitigated) — no BlueKeep hotfix, but NLA is enabled. Patch anyway."
        exit 1
    }
    else {
        Write-Host "VULNERABLE — no BlueKeep hotfix and NLA disabled. Exploitable."
        exit 1
    }
}
catch {
    Write-Host "UNKNOWN — $($_.Exception.Message)"
    exit 2
}
07 · Bottom Line

If you remember one thing.

TL;DR
In 2026, if this plugin is still firing you have unpatched Windows 7 / Server 2008 hosts on your network — that is your real problem, and BlueKeep is just one symptom. Per the noisgate mitigation SLA for CRITICAL, within 3 days: block TCP/3389 at the perimeter for all affected hosts, enable NLA via GPO on every remaining RDS Session Host, and disable RDS on any host that doesn't need it. Per the noisgate remediation SLA for CRITICAL, within 90 days: apply KB4499164/4499175/4499180 (or the XP/2003 out-of-band patch), or — vastly preferable — migrate the workload off the EOL OS entirely. KEV-listed and wormable means the CISA rule of thumb applies: patch or mitigate immediately, within hours, not days.

Sources

  1. Microsoft MSRC — CVE-2019-0708 advisory
  2. NVD — CVE-2019-0708
  3. CISA KEV Catalog
  4. Metasploit BlueKeep RCE module
  5. zerosum0x0 / CVE-2019-0708 PoC
  6. Microsoft — DART on BlueKeep in the wild
  7. NCSC UK advisory
  8. Tenable plugin 125313
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.