← Back to Feed CACHED · 2026-06-20 10:49:41 · CACHE_KEY CVE-2026-50656
CVE-2026-50656 · CWE-59 · Disclosed 2026-06-10

Microsoft Defender Elevation of Privilege Vulnerability

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

A janitor with a master key being tricked into mopping the vault floor

CVE-2026-50656 is a link-following flaw (CWE-59) in Microsoft Defender's local service surface — the platform component that handles signature updates, quarantine I/O, and scan-result writes under NT AUTHORITY\SYSTEM. A logged-in low-privileged user plants a junction or NTFS reparse point along a path Defender touches during routine operations; Defender follows the link and performs a privileged file write/delete on an arbitrary target the user could not otherwise reach. Affected ranges per the MSRC advisory cover Defender platform builds prior to the June 2026 platform refresh and Defender for Endpoint sensor versions before the equivalent backport.

Microsoft's HIGH (7.8) rating is accurate, and we are not downgrading. The CVSS vector (AV:L/AC:L/PR:L/UI:N) honestly reflects that an attacker must already be logged in, but that is exactly the threat model EDR exists to defeat — a commodity infostealer or phishing payload arrives as a Medium-Integrity user and uses Defender itself as the SYSTEM primitive. E:F (functional exploit) plus the role of the affected component is what holds the score at HIGH.

"Local-only symlink bug, but it lands SYSTEM inside a kernel-class security agent on every Windows host. Floor is HIGH."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Attacker obtains low-priv code execution on the host

Initial foothold as a standard interactive user — phishing payload, malicious LNK, browser exploit, or insider. No admin needed; Medium Integrity is sufficient because the bug is in *Defender's* privilege, not the user's.
Conditions required:
  • Interactive or service-account session on the target host
  • Ability to write to a user-controlled directory (e.g. %LOCALAPPDATA%, %TEMP%)
Where this breaks in practice:
  • EDR/AV may already flag the initial loader before stage 2
  • AppLocker / WDAC in Enforced mode blocks unsigned binaries
Detection/coverage: Standard EDR coverage on initial-access TTPs (T1566, T1204) is high; this step is the noisiest.
STEP 02

Plant NTFS junction / reparse point on a Defender-touched path

Attacker uses mklink /J, CreateSymbolicLink, or a tool like James Forshaw's symboliclink-testing-tools (CreateMountPoint.exe, CreateSymlink.exe) to redirect a Defender-managed directory — typically a quarantine staging path, scan-cache directory, or platform update scratch dir — to a SYSTEM-writable target such as C:\Windows\System32.
Conditions required:
  • Write access to a directory Defender enumerates or writes into
  • Knowledge of which Defender operation triggers the vulnerable I/O
Where this breaks in practice:
  • Some Defender paths are ACL'd to SYSTEM-only and cannot be pre-created by a user
  • Recent Windows builds harden non-admin symlink creation outside opt-in directories
Detection/coverage: Sysmon Event ID 11/12 on suspicious reparse-point creation under Defender paths; Defender ASR rule 'Block abuse of exploited vulnerable signed drivers' does NOT cover this.
STEP 03

Trigger the privileged Defender operation

Attacker forces Defender to traverse the planted link — e.g. by dropping an EICAR-style sample to invoke quarantine, kicking off a signature update via MpCmdRun.exe -SignatureUpdate, or scheduling a scan. Defender's SYSTEM-context worker follows the junction and writes/deletes on the redirected path.
Conditions required:
  • Defender real-time protection enabled (it almost always is)
  • Service responsive to user-triggerable events
Where this breaks in practice:
  • If real-time protection is in Passive mode (when a 3rd-party AV is primary), the vulnerable code path may not fire
  • Tamper Protection limits some MpCmdRun invocations
Detection/coverage: Defender's own telemetry would log the write — but to the *redirected* path, which looks like a legitimate platform action.
STEP 04

Convert arbitrary write/delete into SYSTEM code execution

Classic post-primitive conversion: drop a DLL into a known SYSTEM DLL search path, overwrite a Scheduled Task XML, or clobber a service binary. Tools like FilesystemEoPRedirector and DoubleStar automate the arbitrary-write→SYSTEM step. Result: SYSTEM shell on the box.
Conditions required:
  • A known privileged process that loads from a writable-by-primitive path
  • Ability to wait for or trigger that process
Where this breaks in practice:
  • Modern Windows hardening (CFG, dependency-signing, Protected Process Light) blocks naive DLL-search hijacks against some services
  • EDR behavioral rules can catch the post-exploitation child process spawn
Detection/coverage: Behavioral EDR on anomalous SYSTEM child processes from non-standard parents; KQL hunts for MsMpEng.exe/MpDefenderCoreService.exe writing to atypical paths.
STEP 05

Disable Defender, pivot, and persist

With SYSTEM, the attacker now has the keys to the kingdom on this host: disable Tamper Protection via registry, dump LSASS for credentials, drop persistence, lateral-move. The fact that the EoP was *through* the EDR means the EDR's own integrity is in question on this host.
Conditions required:
  • SYSTEM token from step 4
Where this breaks in practice:
  • Cloud-delivered Defender telemetry may still flag post-SYSTEM behaviors before the attacker disables sensors
  • Conditional Access / device-compliance policies may quarantine the host from corporate apps once telemetry stops
Detection/coverage: Sensor-health gaps and Tamper Protection alerts are the high-signal indicators here.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNot on KEV as of 2026-06-20. CVSS temporal flag E:F (Functional) indicates Microsoft is aware of working exploit code; no confirmed campaign attribution yet.
Public PoCNo standalone public PoC on GitHub as of writing; primitives generalize from James Forshaw / Project Zero symlink toolkit and prior Defender EoPs (CVE-2023-24934, CVE-2024-21434 patterns).
EPSS0.00343 (~0.3%) — low predicted 30-day exploitation likelihood, consistent with local-only AV vector.
KEV statusNot listed. Re-check weekly; KEV adds for Defender EoPs typically follow incident-response disclosures.
CVSS vectorCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H/E:F/RL:U/RC:C — local, low-complexity, low-priv attacker, no user interaction, full CIA impact, Unavailable remediation level at time of vector publication.
Affected versionsMicrosoft Defender Antimalware Platform versions prior to 4.18.26050.x (June 2026 platform refresh); Defender for Endpoint sensor versions prior to the equivalent monthly sensor build. Server 2016/2019/2022/2025 and Windows 10/11 all in scope.
Fixed versionsMicrosoft Defender platform 4.18.26050.x or later, delivered via the standard platform update channel (MpCmdRun.exe -SignatureUpdate -MMPC or WSUS/Intune).
Exposure dataNot internet-facing — no Shodan/Censys signal applies. Installed base ≈ every domain-joined Windows endpoint in the enterprise; this is the universal-deployment case.
Disclosure dateMicrosoft Patch Tuesday cycle — June 2026 MSRC advisory.
ReporterCredited via MSRC; symlink-class Defender bugs in recent years have come from independent researchers and the broader Windows EoP community.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to HIGH (7.8/10)

Role multiplier holds the floor at HIGH: the affected component is a kernel-mode-adjacent security agent running as SYSTEM on effectively 100% of managed Windows endpoints, so a successful chain ends in SYSTEM on any host the attacker can already log into. Local-only attack vector is the only reason this is not CRITICAL.

HIGH Severity bucket (HIGH)
HIGH Affected-version identification via Defender platform build number
MEDIUM Exploit availability — `E:F` says functional code exists but it is not yet public

Why this verdict

  • Role multiplier — kernel-class security agent: Defender runs as SYSTEM on every managed Windows host; the chain ends in SYSTEM and EDR-tamper on the box. Per the noisgate role-multiplier rule, a bug *in* an EDR/AV component canonically occupies the high-value role on ≥10% of installs — in this case it is 100% — so the floor is at least HIGH.
  • Friction — local-only (AV:L): Attacker must already be executing code as a non-admin user. That is real friction and is the only reason we are not at CRITICAL: there is no remote, unauthenticated path. We do not break the HIGH floor downward because the post-foothold scenario (commodity stealer, phishing payload, malicious insider) is the dominant real-world initial-access pattern.
  • Friction — no internet exposure: Zero attack-surface from the perimeter. Useless to opportunistic mass exploitation; useful to any attacker already inside, which is every targeted intrusion.
  • Exploit maturity — E:F Functional, no public PoC yet: Functional exploit code exists per Microsoft but is not commoditized. This argues against same-day mass abuse but does not change the floor; symlink-EoP primitives are well-understood and a public PoC is historically a matter of weeks.

Why not higher?

Not CRITICAL because the attack vector is strictly local (AV:L) — there is no wormable or remote-unauth path. CRITICAL is reserved for cases where the chain succeeds against an unauthenticated remote attacker or pivots across the fleet without per-host foothold; this requires interactive code execution per host first.

Why not lower?

Not MEDIUM because the affected component is a kernel-class security agent deployed on the entire Windows estate, and the outcome is SYSTEM plus EDR-tamper on the compromised host. Treating a Defender SYSTEM-EoP as MEDIUM would ignore the deployment-role blast radius rule — EDR bypass is what makes every other post-exploitation step easier.

05 · Compensating Control

What to do — in priority order.

  1. Force Defender platform update to 4.18.26050.x fleet-wide — The Defender Antimalware Platform updates out-of-band from Windows cumulative updates via the Microsoft Malware Protection Center channel. Push via Intune Endpoint Security policy, ConfigMgr, or MpCmdRun.exe -SignatureUpdate -MMPC in a scheduled task. Per noisgate mitigation SLA for HIGH, this rollout must be complete within 30 days.
  2. Enable Tamper Protection on every endpoint — Tamper Protection raises the cost of step 5 (sensor disable) materially and is the single highest-leverage post-EoP control. Enforce via Intune *Endpoint security → Antivirus → Windows Security Experience* or the Defender for Endpoint portal. Deploy within the same 30-day mitigation window.
  3. Audit and minimize interactive logon rights on servers — This bug requires a logged-in user. Restrict SeInteractiveLogonRight on server tiers (especially Tier-0/Tier-1 — DCs, ADCS, backup servers) to break the precondition. GPO Computer Configuration → Windows Settings → Security Settings → Local Policies → User Rights Assignment. Implement within 30 days.
  4. Hunt for reparse-point creation by non-admin users in Defender directories — Sysmon EventID 11 with a filter on TargetFilename matching C:\ProgramData\Microsoft\Windows Defender\* plus IntegrityLevel != System is a high-signal detection for stage 2 of the chain. Push the rule within 7 days; it is cheap insurance during the patch rollout window.
  5. Verify Defender real-time protection is in Active (not Passive) mode where it is the primary AV — Ironically, hosts where Defender is Passive are *less* exposed to this bug — but you need to know which is which. Get-MpComputerStatus | Select AMRunningMode across the fleet inventories this in minutes.
What doesn't work
  • Network segmentation / firewall rules — the entire attack is on-host, no network traffic involved.
  • MFA / Conditional Access — does not protect against an already-authenticated low-priv user; the bug is *post-auth* by definition.
  • Disabling SMB / RDP — irrelevant; not a remote vector.
  • Windows cumulative update (LCU) — Defender platform updates ship on a *separate* channel; the June 2026 LCU does NOT carry the platform fix on its own. You must verify the platform build number specifically.
06 · Verification

Crowdsourced verification payload.

Run on the target Windows host in an elevated PowerShell session (Defender platform queries require local admin to read all fields reliably). Invoke as .\Check-CVE-2026-50656.ps1. Returns exit code 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN. Suitable for ConfigMgr/Intune proactive remediation packaging.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#requires -Version 5.1
# Check-CVE-2026-50656.ps1
# noisgate verification: Microsoft Defender EoP (CWE-59 symlink)
# PATCHED  -> Defender platform >= 4.18.26050.0
# VULNERABLE -> Defender platform < 4.18.26050.0
# UNKNOWN  -> Defender not present / status unreadable

$ErrorActionPreference = 'Stop'
$FixedVersion = [Version]'4.18.26050.0'

try {
    $status = Get-MpComputerStatus -ErrorAction Stop
} catch {
    Write-Output 'UNKNOWN: Defender not installed or Get-MpComputerStatus unavailable.'
    exit 2
}

if (-not $status.AMProductVersion) {
    Write-Output 'UNKNOWN: AMProductVersion not reported.'
    exit 2
}

try {
    $current = [Version]$status.AMProductVersion
} catch {
    Write-Output "UNKNOWN: cannot parse AMProductVersion '$($status.AMProductVersion)'."
    exit 2
}

$rtp     = $status.RealTimeProtectionEnabled
$tamper  = $status.IsTamperProtected
$mode    = $status.AMRunningMode  # Normal | Passive | EDR Block Mode | SxS Passive Mode

Write-Output "Defender platform version : $current"
Write-Output "Real-time protection      : $rtp"
Write-Output "Tamper protection         : $tamper"
Write-Output "Running mode              : $mode"

if ($current -ge $FixedVersion) {
    Write-Output 'PATCHED'
    exit 0
} else {
    Write-Output "VULNERABLE: platform $current < fixed $FixedVersion (CVE-2026-50656)"
    if ($mode -eq 'Passive' -or $mode -eq 'SxS Passive Mode') {
        Write-Output 'NOTE: running in Passive mode — exposure reduced but still patch.'
    }
    exit 1
}
07 · Bottom Line

If you remember one thing.

TL;DR
Treat this as a 30-day noisgate mitigation SLA item, not a fire drill — but do not let it slip past that window. Monday morning: (1) inventory Defender platform build across the estate with the verification script and flag anything below 4.18.26050.x; (2) confirm Tamper Protection is enabled fleet-wide; (3) deploy the Sysmon reparse-point detection rule this week. The Defender platform channel pushes the fix automatically on managed hosts, but disconnected, air-gapped, and frozen-image (gold-image) systems are the long-tail risk — drive those to closure under the noisgate remediation SLA of ≤ 180 days, with Tier-0/Tier-1 servers (DCs, ADCS, backup, hypervisor admin jumpboxes) prioritized inside the first 30.

Sources

  1. MSRC Update Guide — CVE-2026-50656
  2. Microsoft — Manage Defender Antimalware Platform updates
  3. Microsoft — Tamper Protection for Defender for Endpoint
  4. MITRE CWE-59: Improper Link Resolution Before File Access
  5. James Forshaw — symboliclink-testing-tools
  6. CISA Known Exploited Vulnerabilities Catalog
  7. FIRST EPSS Model
  8. Microsoft — Get-MpComputerStatus PowerShell reference
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.