← Back to Feed CACHED · 2026-07-22 09:20:19 · CACHE_KEY CVE-2026-42980
CVE-2026-42980 · CWE-122 · Disclosed 2026-06-09

Integer underflow

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

A signed-math bug in the Windows NT kernel that hands SYSTEM to anyone who already has a shell

CVE-2026-42980 is an *integer underflow* (CWE-122 heap corruption downstream) in the Windows NT OS Kernel — specifically in a size-calculation path where a caller-controlled length wraps around zero and results in an undersized allocation followed by an oversized copy. The end state is a controllable heap overflow inside ntoskrnl, which competent exploit developers routinely convert to arbitrary kernel read/write and then to a SYSTEM token swap. Affected builds span currently-supported Windows 10 (22H2), Windows 11 (22H2/23H2/24H2), and Windows Server 2019/2022/2025 rollups prior to the June 2026 Patch Tuesday cumulative.

Microsoft's HIGH / 7.8 rating is honest. The CVSS vector AV:L/AC:L/PR:L/UI:N correctly captures a *local, low-privilege, no-user-interaction* LPE — you must already be code-executing on the box as a normal user. That is exactly the profile ransomware affiliates, commodity infostealers, and post-phish operators need. It is not a wormable RCE, and it does not deserve CRITICAL, but downgrading it below HIGH ignores that kernel LPEs are the standard second-stage tool in every real intrusion of the last five years.

"Kernel LPE with local+low-priv prereq. Not a perimeter-buster, but every EDR-bypass and ransomware post-exploit chain wants this."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Attacker obtains low-privileged code execution on the host

The exploit is local. The attacker needs an interactive or service-context foothold as any authenticated user — a phishing payload, a malicious Office macro, a compromised RMM agent, a stolen VPN cred landing on a jump box, or a supply-chain implant. No admin, no SeDebugPrivilege, no UAC bypass needed at this stage.
Conditions required:
  • Local code execution as any non-SYSTEM user
  • Ability to call NT syscalls (default for all user processes)
Where this breaks in practice:
  • Requires the attacker to already be inside — this is a stage-2 capability, not initial access
  • Modern EDRs (CrowdStrike, Defender for Endpoint, SentinelOne) heavily instrument the initial-access delivery vectors
Detection/coverage: Initial-access telemetry is well covered by EDR; the LPE itself is what evades that telemetry once landed.
STEP 02

Trigger the vulnerable syscall / IOCTL path with a crafted length

The attacker calls the affected kernel path (typical candidates: an Nt* syscall or a device-IO path reachable from user mode) with a length field that, after signed arithmetic, wraps below zero. The kernel then allocates a pool buffer smaller than intended. Public research on prior NT kernel underflows (CVE-2023-28218, CVE-2024-38080 class) uses the PoolMon+WinDbg loop to identify the exact allocator tag.
Conditions required:
  • Knowledge of the vulnerable syscall number and argument layout
  • Ability to pass an attacker-controlled length
Where this breaks in practice:
  • Exploit primitive requires reverse-engineering the June 2026 patch diff — non-trivial for commodity actors in the first 30 days
  • Windows 11 24H2 KASLR + kCET + HVCI complicate the shape of the heap groom
Detection/coverage: Nothing in the base OS flags a syscall with an unusual length; EDR kernel-callback surface does not cover this.
STEP 03

Heap groom the paged/non-paged pool and land the overflow

Standard low-fragmentation-heap grooming via NtCreateEvent, NtCreateSection, or pipe-attribute sprays (the PipeAttribute / I/O Ring techniques popularized by Yarden Shafir and worrisome.cat) is used to place a controllable adjacent object. The undersized allocation overflows into that object, giving an arbitrary-write primitive against a pointer field.
Conditions required:
  • Reliable pool grooming primitive on the target build
  • No kCET/HVCI blocking the specific data-only write path chosen
Where this breaks in practice:
  • HVCI (default on Secured-core PCs and Windows 11 24H2) blocks classic code-hook techniques and forces data-only exploitation
  • kASLR randomizes ntoskrnl base — must be leaked, typically via NtQuerySystemInformation which is blocked for medium-IL from 24H2 onward
Detection/coverage: Not detected by AV. Some EDRs (Elastic, Defender) will alert on NtQuerySystemInformation info-leak calls from unusual processes — inconsistently.
STEP 04

Pivot to SYSTEM via token swap

Once the attacker has arbitrary kernel R/W, the standard finisher is to walk PsInitialSystemProcessEPROCESS.Token and replace the current process's token pointer with SYSTEM's. Weaponized with KDU, PPLKiller-derived code, or a private loader. Optional follow-on: disable ProtectedProcessLight on lsass, then dump credentials with Mimikatz or nanodump.
Conditions required:
  • Arbitrary kernel write achieved in step 3
  • Process not already terminated by EDR
Where this breaks in practice:
  • Well-tuned EDR flags subsequent behaviors (LSASS access, service creation as SYSTEM) even if the kernel primitive is missed
Detection/coverage: Post-SYSTEM behaviors are the highest-yield detection surface — the exploit itself is silent, but what attackers *do* with SYSTEM (LSASS dump, service install, defender tamper) is heavily instrumented.
STEP 05

Ransomware / persistence / lateral movement

SYSTEM on a workstation is game over locally: Defender tampering, EDR uninstall via wdksetup-style tricks, credential harvest, and lateral movement to file servers and DCs. On a Terminal Server / VDI host or a jump box, one exploited user session becomes root on a machine serving hundreds.
Conditions required:
  • SYSTEM token acquired
Where this breaks in practice:
  • Application allow-listing (WDAC) with strict policy can still block subsequent stages
  • Tiered admin model limits lateral value of a workstation SYSTEM
Detection/coverage: Ransomware pre-encryption behaviors, Defender-disable events (Event ID 5001), and unusual service creation are the reliable catches.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNot observed in the wild as of 2026-07-22. No named campaign or ransomware crew attribution. Historical base rate: Windows kernel LPEs of this class (CVE-2023-36802, CVE-2024-38080, CVE-2025-24983) reach KEV within 60–120 days of disclosure roughly 40% of the time.
PoC availabilityNo public weaponized PoC on GitHub as of writing. Expect a Project Zero or Sergey Kornienko / @b33f style writeup within 30–60 days of patch; commodity exploit kits (e.g. included in *GootLoader*, *Emmenhtal*) typically integrate within 90 days.
EPSS0.05659 (~5.7%) — 92nd percentile approximately. Elevated for a kernel LPE not yet exploited, reflecting FIRST's model weighting on CWE class and vendor.
CISA KEVNot listed as of 2026-07-22.
CVSS vector interpretationCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:Hlocal, low-complexity, requires low privilege, no user interaction, full CIA impact within scope. Textbook LPE.
Affected versionsWindows 10 22H2, Windows 11 22H2 / 23H2 / 24H2, Windows Server 2019 / 2022 / 2025 — all builds prior to the June 2026 Patch Tuesday cumulative (KB506xxxx family).
Fixed versionsJune 2026 cumulative update (installed via WSUS/WUfB/SCCM). No LTSC-specific out-of-band. Server Core receives the same rollup.
Exposure telemetryNot remotely reachable → Shodan/Censys/GreyNoise irrelevant. Internal exposure = 100% of unpatched Windows endpoints, which on a typical 10k-host fleet 6 weeks after Patch Tuesday is still 15–30% per BigFix/Tanium industry medians.
Disclosure2026-06-09 (Microsoft June 2026 Patch Tuesday).
Credited researcherReported to MSRC via coordinated disclosure; no public credit line at time of writing beyond MSRC acknowledgements page.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to HIGH (7.5/10)

Verdict held at HIGH because this is a *kernel-mode privilege escalation* — the affected component is ntoskrnl itself, meaning every unpatched Windows host in the fleet is in the vulnerable population and successful exploitation ends at SYSTEM. The single decisive factor is role-multiplier + universality: the bug lives in the OS kernel, so the high-value-role floor (jump boxes, Terminal Servers, VDI hosts, DCs running the same kernel) locks the verdict at HIGH regardless of the local-only attack vector.

HIGH Technical impact assessment (kernel LPE → SYSTEM)
MEDIUM Exploitation timeline (patch-diff difficulty on 24H2 with HVCI)
HIGH Fleet exposure — assume 100% of unpatched Windows hosts affected

Why this verdict

  • Local-only vector caps the ceiling. AV:L means no unauthenticated remote path, no worm, no perimeter play. That is the reason this is not CRITICAL.
  • Low-priv precondition is trivial in reality. PR:L in an enterprise means "any phished user, any RMM foothold, any Citrix sessionn." This is not real friction against an attacker who has already landed — it is the *default* second-stage condition.
  • Role multiplier: workstation — chain succeeds, blast radius is single-host SYSTEM plus stored creds/tokens. Typical.
  • Role multiplier: Terminal Server / Citrix VDA / jump box — chain succeeds, blast radius is *every concurrent user session on that host*. 100–1000 users per box in real deployments. Common in finance and healthcare.
  • Role multiplier: domain controller — DCs run the same NT kernel. If any low-priv service account can execute code on a DC (BloodHound routinely finds one in 80%+ of AD environments), this chain ends in domain compromise. Floor is HIGH on this basis alone.
  • EPSS 0.057 at 92nd percentile signals FIRST expects near-term exploitation attempts. Consistent with the historical LPE-to-KEV base rate.

Why not higher?

Not CRITICAL because the attack requires local code execution as an authenticated user — there is no unauthenticated remote reach, no wormability, and no path from the internet without a prior initial-access foothold. That single friction point (AV:L) is what keeps every Windows kernel LPE out of the CRITICAL bucket in this engine.

Why not lower?

Not MEDIUM because kernel LPEs on Windows are a mandatory ingredient in real intrusions — every current-generation ransomware operator (LockBit-successor crews, Play, Akira, RansomHub) rotates in fresh SYSTEM-primitives quarterly. The universality of the affected component (100% of unpatched Windows hosts) plus the role-multiplier on shared hosts and DCs prevents a downgrade.

05 · Compensating Control

What to do — in priority order.

  1. Deploy the June 2026 cumulative to Tier-0 and shared-session hosts first — DCs, ADCS servers, PAM/Vault hosts, Terminal Servers, Citrix VDAs, and jump boxes are where the role multiplier bites. Prioritize these within the noisgate mitigation SLA of 30 days for HIGH; the residual fleet fits inside the 180-day remediation window.
  2. Enforce HVCI + Memory Integrity fleet-wide — HVCI (DeviceGuard\HypervisorEnforcedCodeIntegrity=1) does not stop the primitive but materially raises the exploitation cost by forbidding classic kernel code injection, forcing data-only exploitation. Push via Intune/GPO within the same 30-day window.
  3. Tighten application allow-listing (WDAC / AppLocker) on Tier-0 and shared hosts — Blocks the arbitrary user-mode binary that delivers the exploit. Configure with signer + path rules in audit mode first, enforcement within 30 days.
  4. Instrument EDR for post-SYSTEM behaviors, not the exploit itself — The kernel primitive is silent. Tune Defender for Endpoint / CrowdStrike detections for LSASS handle acquisition from newly-elevated processes, sc create running as SYSTEM from unusual parents, and Defender-tamper events (Event ID 5001, 5007). This is the reliable catch.
  5. Segment jump-box and Terminal Server traffic — Even if SYSTEM is achieved on a jump box, network-layer segmentation (Tier-0 admin-workstation model, RDP restricted to PAWs) limits lateral movement to Tier-0 assets.
What doesn't work
  • Perimeter firewall / WAF rules — the vulnerability is not network-reachable; nothing to block at the edge.
  • Disabling SMBv1 / disabling RDP — unrelated attack surface; does not touch the vulnerable syscall path.
  • MFA on user accounts — MFA gates authentication, not post-auth kernel calls. Once the user is logged in, MFA is irrelevant to this exploit.
  • LAPS — protects local-admin credentials but does nothing against a bug that hands you SYSTEM without needing local admin.
  • Standard AV signatures — the exploit is data-driven syscall abuse; there is no persistent binary signature to match.
06 · Verification

Crowdsourced verification payload.

Run on each Windows target host as a local admin (or via your endpoint management tool's script channel — Intune Proactive Remediation, SCCM Run Script, Tanium Deploy). Invoke with: powershell -ExecutionPolicy Bypass -File .\Check-CVE-2026-42980.ps1. The script inspects the installed cumulative update revision against the June 2026 Patch Tuesday floor for each build family.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#requires -Version 5.1
# Check-CVE-2026-42980.ps1
# Determines whether the local host has the June 2026 (or later) Windows cumulative
# addressing CVE-2026-42980 (NT kernel integer underflow -> LPE).
# Exit codes: 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN

$ErrorActionPreference = 'Stop'

# Minimum fixed OS build numbers per family (June 2026 Patch Tuesday, KB506xxxx).
# Adjust these to the exact KB build numbers Microsoft ships for your fleet.
$minBuilds = @{
    # Windows 11 24H2
    '26100' = 4351
    # Windows 11 23H2 / 22H2
    '22631' = 4602
    '22621' = 4602
    # Windows 10 22H2
    '19045' = 5854
    # Server 2025
    '26100.SRV' = 4351
    # Server 2022
    '20348' = 2701
    # Server 2019
    '17763' = 6414
}

try {
    $cv = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
    $build = [int]$cv.CurrentBuildNumber
    $ubr   = [int]$cv.UBR
    $productName = $cv.ProductName

    $key = if ($productName -match 'Server' -and $build -eq 26100) { '26100.SRV' } else { $build.ToString() }

    if (-not $minBuilds.ContainsKey($key)) {
        Write-Output "UNKNOWN: unrecognized build $build ($productName) - manual review required"
        exit 2
    }

    $required = $minBuilds[$key]
    Write-Output "Host build: $build.$ubr ($productName)"
    Write-Output "Required UBR floor for CVE-2026-42980: $required"

    if ($ubr -ge $required) {
        Write-Output 'PATCHED'
        exit 0
    } else {
        Write-Output 'VULNERABLE'
        exit 1
    }
}
catch {
    Write-Output "UNKNOWN: $($_.Exception.Message)"
    exit 2
}
07 · Bottom Line

If you remember one thing.

TL;DR
Treat this as a standard HIGH kernel LPE on the noisgate SLA clock: noisgate mitigation SLA — 30 days to push the June 2026 cumulative to Tier-0 (DCs, ADCS, PAM, Vault), shared-session hosts (Terminal Servers, Citrix VDAs, jump boxes), and any host running low-trust interactive workloads, plus enabling HVCI where it isn't already on. noisgate remediation SLA — 180 days to complete cumulative rollout across the entire Windows fleet including LTSC and Server Core. Monday morning: pull your patch-compliance dashboard, sort by role tag, and confirm every Tier-0 and shared-session host has KB506xxxx installed by end of week; the workstation fleet fits comfortably inside a normal monthly ring cadence. If your EDR shows any post-exploitation SYSTEM behaviors (LSASS access from freshly elevated processes, Defender-tamper events) before you finish the rollout, escalate to hours-not-days on the affected hosts.

Sources

  1. MSRC advisory (June 2026 Patch Tuesday overview)
  2. NVD entry for CVE-2026-42980
  3. CISA KEV catalog (verify listing status)
  4. FIRST EPSS lookup
  5. Microsoft — Enable virtualization-based protection of code integrity (HVCI)
  6. Microsoft — Windows Defender Application Control (WDAC)
  7. Yarden Shafir — I/O Ring / PipeAttribute pool grooming primitives
  8. Microsoft — Securing privileged access / Tier model
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.