← Back to Feed CACHED · 2026-05-17 09:42:19 · cache_key CVE-2025-29912
tenable:298555 · CWE-693 · Disclosed 2026-02-10

KB5075970: Windows Server 2012 R2 Security Update

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
01 · The Real Story

This is a live grenade in the admin jump bag, not a missile hitting every server from the internet

KB5075970 is the February 10, 2026 monthly rollup for Windows Server 2012 R2 ESU. Tenable plugin 298555 flags hosts missing that rollup and ties it to multiple CVEs, most importantly CVE-2026-21513 in MSHTML plus several local privilege escalation bugs such as CVE-2026-21246, CVE-2026-21235, CVE-2026-21508, and CVE-2026-21533. In plain English: an attacker can use a crafted file or web/navigation path to get code running, then use local EoP bugs to turn foothold into SYSTEM on an unpatched 2012 R2 host.

The vendor labeling is easy to misread here. Tenable's plugin severity is high, not critical, while Tenable VPR escalates it because the rollup contains a KEV-listed, actively exploited zero-day (CVE-2026-21513). That said, for a 10,000-host enterprise this still does not behave like an indiscriminate unauthenticated network worm on every server: the dominant path needs user interaction and/or a post-compromise local stage, which sharply narrows real-world reach even though the consequences on the hosts that *are* used by admins are ugly.

"KEV-listed and exploited, but this is not a slam-dunk server-side RCE; the real risk is admin-user execution on legacy 2012 R2 boxes."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Deliver a user-execution lure

The practical entry point is a crafted lure that reaches someone who uses the vulnerable host: email attachment, downloaded file, network share content, or a shortcut/document path that triggers MSHTML-backed handling. The weaponized content is not the monthly rollup itself; the relevant weapon is an MSHTML/IEFRAME lure tied to CVE-2026-21513 as analyzed by Akamai.
Conditions required:
  • Attacker can reach a user or admin who interacts with content on the target host
  • Target is Windows Server 2012 R2 ESU missing KB5075970
  • MSHTML-triggering content is allowed to land on or be opened from the system
Where this breaks in practice:
  • Headless back-end servers usually have no interactive browsing or document-opening workflow
  • Email security, web isolation, attachment detonation, and file reputation controls stop a lot of commodity delivery
  • Many 2012 R2 servers are only reachable by admins, which means the attacker often needs a prior foothold or successful phishing
Detection/coverage: Network vulnerability scanners do not prove exploitability here; Tenable states the plugin relies on version checks. Secure email gateways, proxy logs, attachment sandboxes, and EDR telemetry are more useful than perimeter scanning.
STEP 02

Trigger the MSHTML bypass

Per Akamai's patch-diff analysis, the vulnerable path sits in ieframe.dll hyperlink navigation handling. The attacker abuses URL handling so execution escapes intended browser security boundaries and reaches ShellExecuteExW, turning what should be constrained content handling into arbitrary execution behavior.
Conditions required:
  • The lure is opened or otherwise rendered
  • The specific vulnerable MSHTML navigation path is hit
  • No upstream control strips or neutralizes the active content
Where this breaks in practice:
  • This is not a pre-auth socket listener on port 3389 or 445; it needs content handling
  • Protected View-style workflows, browser isolation, and application control reduce success
  • Server Core-like minimal workflows reduce exposure compared with user workstations
Detection/coverage: EDR can often catch odd parent-child chains, ieframe.dll-driven execution, ShellExecuteExW abuse, suspicious .lnk/HTML opens, or payloads launched from temp/download/share paths.
STEP 03

Land code in user context

At this point the attacker has execution in the current user context on the server. On an admin jump host, RDS host, or dual-use legacy server, that can already be enough to steal tokens, dump creds, stage tools, or pivot laterally.
Conditions required:
  • Successful user execution on the target host
  • User context has enough local rights or reachable credentials to matter
Where this breaks in practice:
  • Non-admin service accounts or constrained jump workflows limit blast radius
  • Application control and constrained language policies can choke follow-on tooling
  • Credential Guard, EDR, and PAM reduce what a single user-context foothold can do
Detection/coverage: High-quality EDR should see unsigned child processes, LOLBin misuse, script interpreters, token abuse, or credential access attempts immediately after the initial lure event.
STEP 04

Escalate locally to SYSTEM

The rollup also fixes several local bugs, including CVE-2026-21246, CVE-2026-21235, CVE-2026-21508, and CVE-2026-21533. Those are the cleanup crew for an attacker: once they have *any* code running locally, they can attempt to upgrade from low privilege to full box control.
Conditions required:
  • Attacker already has local code execution
  • The host is missing KB5075970 and applicable vulnerable components remain present
Where this breaks in practice:
  • This stage is impossible without a prior local foothold
  • Some EoP paths are brittle across builds and require exploit engineering
  • Behavioral EDR often catches the privilege-escalation toolchain even if it missed the initial lure
Detection/coverage: Local EoP detection is mostly EDR territory: token manipulation, kernel exploit artifacts, suspicious handle opens, memory tampering, or abrupt integrity-level jumps.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusYes. CVE-2026-21513 is in CISA KEV, and Akamai states it was actively exploited in the wild and correlates exploitation to APT28.
Proof-of-concept / exploit availabilityTenable marks the rollup as Exploit Available: true and lists Core Impact under exploitable-with. Akamai published a technical root-cause and exploitation analysis for CVE-2026-21513, which materially lowers reverse-engineering effort.
EPSSFor the dominant CVE (CVE-2026-21513), secondary aggregators reflecting FIRST data place exploit probability at roughly 22% and about the 96.5th percentile as of late May 2026; treat that as high exploit interest, though the direct FIRST CVE-specific query was not retrievable in this interface.
KEV status and datesCVE-2026-21513 was added to CISA KEV on 2026-02-10 with a due date of 2026-03-03. Tenable also exposes the same due date in plugin metadata.
CVSS vector, interpretedThe dominant network-relevant bug carries CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H. Translation: *network-deliverable but still needs user interaction*; that is serious, but it is not equivalent to an unauthenticated server daemon RCE.
Affected version rangeFor this plugin, the affected population is Windows Server 2012 R2 ESU hosts missing KB5075970. Microsoft notes 2012 R2 is past normal support and only receiving updates through Extended Security Updates until 2026-10-13.
Fixed versionsInstall KB5075970 for the February 10, 2026 monthly rollup, with prerequisite SSU KB5068783 where needed. Any later cumulative rollup that supersedes KB5075970 also closes the same issues for 2012 R2.
Scanning / exposure realityThere is no meaningful Shodan/Censys-style internet exposure query for KB5075970 itself because this is a host patch state, not a directly fingerprintable network service bug. Real exposure clusters around RDS hosts, admin jump boxes, and legacy servers where humans browse, open files, or handle email.
Disclosure dateMicrosoft published the rollup and the dominant CVE set on 2026-02-10.
Reporting / analysisAuthoritative disclosure came from Microsoft/MSRC; public exploitation analysis and root-cause work came from Akamai Security Research.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to HIGH (8.2/10)

The single biggest factor is that the most important bug in this rollup is actively exploited and KEV-listed, which keeps this out of the comfort zone. But it stops short of CRITICAL because the dominant path is user-execution/MSHTML-driven, not a broadly reachable unauthenticated server-side RCE smashing every 2012 R2 system from the internet.

HIGH Active exploitation and KEV status for `CVE-2026-21513`
MEDIUM Fleet-wide reachability on actual Server 2012 R2 deployments

Why this verdict

  • Upward pressure: KEV + live exploitation. CVE-2026-21513 is not theoretical; CISA KEV and Akamai's analysis say attackers are already using it.
  • Downward pressure: attacker position still matters. The main path needs a person or prior foothold to trigger MSHTML content, which means this is not a broadcast-grade service exploit against every server.
  • Downward pressure: narrow exposed population. In real enterprises, only a fraction of 2012 R2 servers are interactive enough for this to matter immediately: admin jump servers, RDS hosts, and a depressing number of legacy dual-use boxes.
  • Upward pressure: privilege-escalation bundle. Once code lands locally, the same rollup closes multiple local EoP paths that can convert a small foothold into full host takeover.
  • Upward pressure: legacy OS economics. 2012 R2 estates are often the least instrumented and least cleanly segmented servers in the environment, so when this hits the wrong box, containment is usually worse than on modern builds.

Why not higher?

Because the practical chain is not unauthenticated remote-to-SYSTEM on a listening server process. It generally requires user interaction, content handling, or an already-established local foothold, which means a lot of ordinary back-end 2012 R2 servers are simply not reachable through the dominant attack path. If this were a wormable RDP/SMB class bug with the same exploitation evidence, it would be CRITICAL.

Why not lower?

Because the threat side is already settled: KEV-listed and exploited means defenders are racing reality, not a lab exercise. Also, the patch is cumulative: if an attacker does get execution on a legacy 2012 R2 box, the bundled local EoPs make post-exploitation easier and more damaging than a single isolated user-context flaw.

05 · Compensating Control

What to do — in priority order.

  1. Block risky content on server tiers — Immediately, within hours, stop interactive browsing, email access, and untrusted file opening on Windows Server 2012 R2 admin/jump/RDS tiers because the dominant exploit path depends on user-executed content. This is your fastest risk cut while patching catches up.
  2. Clamp application execution — Deploy or tighten AppLocker/WDAC/application control on 2012 R2 so .lnk, HTML-launched binaries, script hosts, and user-writable path execution are constrained. Because this is a HIGH verdict with KEV evidence, implement the control change immediately, within hours, not inside a normal 30-day window.
  3. Hunt for MSHTML-to-process-launch chains — Create detections for suspicious ieframe.dll or MSHTML content leading to ShellExecuteExW, LOLBins, script interpreters, or payloads spawned from downloads/temp/network shares. Do this immediately, within hours because it catches both failed and successful exploitation attempts while the estate is still being remediated.
  4. Fence legacy 2012 R2 hosts — Restrict east-west access and admin pathways to 2012 R2 systems, especially RDS and jump hosts, so a user-context foothold has fewer places to pivot. For this verdict and KEV status, put the segmentation change in place immediately, within hours where operationally possible.
What doesn't work
  • A perimeter firewall alone does not solve this, because the main exploited path is content handling and user execution, not just inbound service exposure.
  • Vuln scanner green checks do not prove safety here; Tenable explicitly says this plugin is based on version self-reporting, not exploit validation.
  • RDP hardening by itself is not enough. Some of the bundled bugs are local EoP, and the dominant exploited MSHTML path can arrive through channels unrelated to inbound RDP.
06 · Verification

Crowdsourced verification payload.

Run this on the target Windows Server 2012 R2 host or through your RMM/EDR live response. Invoke with powershell.exe -ExecutionPolicy Bypass -File .\check-kb5075970.ps1; standard local read access is usually enough, but Administrator is recommended so package enumeration works reliably.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
# check-kb5075970.ps1

# Purpose: Verify whether Windows Server 2012 R2 has KB5075970 installed.

# Output: VULNERABLE / PATCHED / UNKNOWN

# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN, 3=ERROR


$ErrorActionPreference = 'Stop'

function Write-Result {
    param(
        [string]$State,
        [string]$Message,
        [int]$Code
    )
    Write-Output "$State - $Message"
    exit $Code
}

try {
    $os = Get-CimInstance Win32_OperatingSystem
    $caption = $os.Caption
    $version = $os.Version

    if ($caption -notmatch 'Windows Server 2012 R2') {
        Write-Result -State 'UNKNOWN' -Message "This script is intended for Windows Server 2012 R2. Detected: $caption ($version)" -Code 2
    }

    $kbInstalled = $false
    $installMethod = @()

    # Method 1: Get-HotFix

    try {
        $hf = Get-HotFix -Id KB5075970 -ErrorAction Stop
        if ($hf) {
            $kbInstalled = $true
            $installMethod += 'Get-HotFix'
        }
    } catch {
        # ignore and continue

    }

    # Method 2: Component Based Servicing package registry

    if (-not $kbInstalled) {
        try {
            $cbsPath = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages'
            $pkg = Get-ChildItem $cbsPath -ErrorAction Stop | Where-Object { $_.PSChildName -match 'KB5075970' }
            if ($pkg) {
                $kbInstalled = $true
                $installMethod += 'CBS Registry'
            }
        } catch {
            # ignore and continue

        }
    }

    # Method 3: DISM package listing fallback

    if (-not $kbInstalled) {
        try {
            $dism = & dism.exe /online /Get-Packages 2>$null | Select-String -Pattern 'KB5075970'
            if ($dism) {
                $kbInstalled = $true
                $installMethod += 'DISM'
            }
        } catch {
            # ignore and continue

        }
    }

    # Optional: note servicing stack prerequisite visibility

    $ssuInstalled = $false
    try {
        $ssu = Get-HotFix -Id KB5068783 -ErrorAction Stop
        if ($ssu) { $ssuInstalled = $true }
    } catch {
        try {
            $ssuPkg = Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages' -ErrorAction Stop | Where-Object { $_.PSChildName -match 'KB5068783' }
            if ($ssuPkg) { $ssuInstalled = $true }
        } catch {
            # ignore

        }
    }

    if ($kbInstalled) {
        $msg = 'KB5075970 is installed'
        if ($installMethod.Count -gt 0) {
            $msg += " (detected via: $($installMethod -join ', '))"
        }
        if ($ssuInstalled) {
            $msg += '; prerequisite SSU KB5068783 also present'
        }
        Write-Result -State 'PATCHED' -Message $msg -Code 0
    } else {
        $msg = 'KB5075970 not detected on Windows Server 2012 R2'
        if (-not $ssuInstalled) {
            $msg += '; SSU KB5068783 also not detected and may be required before install'
        }
        Write-Result -State 'VULNERABLE' -Message $msg -Code 1
    }
}
catch {
    Write-Result -State 'UNKNOWN' -Message $_.Exception.Message -Code 3
}
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning, treat interactive or admin-used Windows Server 2012 R2 systems first: RDS hosts, jump boxes, management servers, and any legacy server where humans open files or browse. Because this rollup includes a KEV-listed, actively exploited path, apply temporary controls and workflow restrictions immediately, within hours under the noisgate mitigation SLA override, then push KB5075970 (and KB5068783 if required) in the same emergency cycle to the exposed/high-value slice first and the rest of the 2012 R2 ESU estate right after; the formal noisgate remediation SLA for a HIGH issue is ≤180 days, but using that full window for a live Windows zero-day on legacy servers would be poor judgment.

Sources

  1. Tenable Nessus Plugin 298555
  2. Microsoft Support KB5075970
  3. Microsoft Update Catalog KB5075970
  4. NVD CVE-2026-21513
  5. CISA KEV entry for CVE-2026-21513
  6. Akamai analysis of CVE-2026-21513 exploitation
  7. FIRST EPSS API documentation
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.