BlueHammer CVE-2026-33825 — Microsoft Defender LPE (BlueHammer / RedSun)
Executive Summary
CVE-2026-33825 ("BlueHammer") is a local privilege-escalation flaw (CVSS 7.8) in Microsoft Defender Antivirus. It is a time-of-check-to-time-of-use (TOCTOU) race in Defender's threat-remediation engine: an attacker plants a file Defender will quarantine, uses a batch opportunistic lock (oplock) to pause Defender mid-operation, then swaps in an NTFS junction that redirects Defender's privileged write from a temp directory into C:\Windows\System32. When the oplock releases, Defender (running as SYSTEM) follows the junction and writes to the protected location — yielding SYSTEM code execution and an arbitrary read handle to the SAM database (local password hashes). A sibling technique, RedSun, abuses Defender's cloud file-rollback mechanism via the Windows Cloud Files API to achieve the same System32 overwrite.
PoC tooling ("Nightmare-Eclipse") leaked in early April 2026; Microsoft patched in the April 2026 Patch Tuesday; CISA added the CVE to the KEV catalog on April 22, 2026; and on June 30, 2026 CISA confirmed it is now being exploited by ransomware gangs as a privilege-escalation and credential-access step. Affected: Windows 10/11 and Server 2016–2025 running Defender builds prior to the April 2026 update.
Highest-value defensive angle: the exploit's signature is the security product itself behaving abnormally — MsMpEng.exe writing an executable into System32, junction/reparse creation pointing at System32, and post-escalation SAM-hive access. None of these are benign in a healthy environment, so behavioral hunts are high-fidelity even without atomic IOCs. The fastest win, however, is verifying the April 2026 Defender platform update is actually deployed fleet-wide.
Defender priority: Confirm Defender platform/engine is patched (≥ April 2026) on every endpoint, then hunt Q1 (MsMpEng.exe → PE into System32) and Q3 (SAM-hive access). Treat any hit as an active ransomware-precursor escalation — isolate and assume credential theft.
Source Review & Web Hunter Notes
| Tier | Source | Key Finding | Carry Forward |
|---|---|---|---|
| 1 · Gov | CISA KEV + alert (2026-06-30) | CVE-2026-33825 confirmed exploited by ransomware gangs; KEV since 2026-04-22. | Yes |
| 1 · Vendor | Microsoft MSRC (April 2026 update) | Insufficient access-control granularity in Defender → local EoP; patched April 2026 Patch Tuesday. | Yes |
| 2 · Research | Picus Security — BlueHammer & RedSun explained | TOCTOU + oplock + NTFS junction → System32 write as SYSTEM; RedSun via Cloud Files API rollback. | Yes |
| 2 · IR | Huntress — Nightmare-Eclipse tooling in real-world intrusion | PoC tooling observed in live intrusion; corroborates in-the-wild use. | Yes |
| 2 · Press | BleepingComputer / SecurityWeek | SAM arbitrary read handle → local hashes → SYSTEM; multiple ransomware groups adopted it. | Partial |
Intel note: No atomic file hashes or C2 were published for the Nightmare-Eclipse tooling at access time. Coverage here is behavior-led against the exploit primitive (Defender → System32 write, junction-to-System32, SAM access); atomic-IOC slots in §10 are placeholders.
Hunt Brief & Attack Chain
Hunt hypotheses (fidelity-ordered)
- H1 (high):
MsMpEng.exe(Defender) writes a PE/executable intoSystem32— the junction-redirected privileged write at the heart of BlueHammer/RedSun. - H2 (high): A non-system process creates an NTFS junction / reparse point targeting
System32(or usesmklink/fsutil reparsepointagainst a system path). - H3 (high): A process accesses or copies the SAM/SYSTEM registry hives (
reg save HKLM\SAM,esentutlon SAM, directSystem32\config\SAMreference) — post-escalation credential access. - H4 (medium): A SYSTEM-integrity process launches from a user-writable directory (Users/Temp/ProgramData) shortly after Defender remediation activity — post-LPE payload.
- H5 (medium, IOC): Known Nightmare-Eclipse tooling executes (by hash, once published).
- H6 (config): Endpoints reporting Defender platform/engine builds older than the April 2026 update — exposure surface.
Attack chain
| Step | Action | Telemetry | Hunt Angle |
|---|---|---|---|
| 1 · Foothold | Attacker has local (non-admin) code execution | ProcessRollup2 | Upstream — initial access pack |
| 2 · Setup | Plant detected file; arm batch oplock; create junction to System32 | ProcessRollup2 (mklink/fsutil) | Q2 |
| 3 · Trigger | Defender remediation follows junction; writes into System32 as SYSTEM | PeFileWritten / NewExecutableWritten (ctx MsMpEng.exe) | Q1 |
| 4 · Escalation | SYSTEM code execution; arbitrary read handle to SAM | ProcessRollup2, IntegrityLevel | Q4 |
| 5 · Credential Access | Dump SAM/SYSTEM hives → local hashes | ProcessRollup2 (cmd-line) | Q3 |
| 6 · Impact | Ransomware actor pivots / deploys with elevated access | Varies (lateral, encryption) | Downstream ransomware pack |
Consolidated IOC Table
| Type | Value | Confidence | Action | Context |
|---|---|---|---|---|
| Behavior | MsMpEng.exe writes a PE into C:\Windows\System32 | high | hunt | Junction-redirected privileged write (Picus) |
| Behavior | NTFS junction / reparse point targeting System32 | high | hunt | Core exploit primitive (oplock + junction) |
| Behavior | SAM/SYSTEM hive access (reg save HKLM\SAM, esentutl, System32\config\SAM) | high | hunt | Post-escalation credential access |
| Tooling | Nightmare-Eclipse (PoC), RedSun variant | medium | hunt | Named in leak + Huntress IR |
| Config | Defender platform/engine < April 2026 update | high | enrich | Exposure surface — patch gate |
| SHA256 | REPLACE_WITH_NIGHTMARE_ECLIPSE_SHA256 | n/a | detect | Placeholder — populate when published |
No atomic hashes/IPs were published in primary sources at access time (2026-06-30). The SHA256 row is an explicit placeholder — do not deploy as-is.
Affected Surface & Telemetry Matrix
| Surface | Required Telemetry | Priority | Gap Risk |
|---|---|---|---|
| Windows 10/11 endpoints (Defender AV) | PeFileWritten, ProcessRollup2 | Critical | Low — native Falcon |
| Windows Server 2016–2025 (Defender AV) | PeFileWritten, ProcessRollup2 | Critical | Low |
| Reparse/junction creation | ProcessRollup2 (mklink/fsutil), file events | High | Medium — junction telemetry can be indirect |
| Defender platform/engine version | Spotlight / asset inventory / Defender health | High | Medium — version data outside core EDR stream |
ATT&CK Mapping
| Tactic | Technique | Observed Behavior | Query / Control |
|---|---|---|---|
| Privilege Escalation | T1068 Exploitation for Priv Esc | TOCTOU in Defender remediation → SYSTEM | Q1, Patch |
| Defense Evasion / PrivEsc | T1574.005 / Symlink & junction abuse | NTFS junction redirects Defender write to System32 | Q2 |
| Defense Evasion | T1211 Exploitation for Defense Evasion | Abuse of the AV's own privileged operations | Q1 |
| Credential Access | T1003.002 Security Account Manager | Arbitrary read handle to SAM → local hashes | Q3 |
| Execution | T1059 Command/Scripting (post-LPE) | SYSTEM process from user-writable path | Q4 |
| Impact | T1486 Data Encrypted for Impact | Ransomware deployment with elevated access | Downstream |
Native Audit-Log Hunts (non-CQL)
Defender / patch posture (do this first)
Get-MpComputerStatus— confirmAMEngineVersion/AMProductVersionreflect the April 2026 (or later) update on every host. Anything older is exposed.- Review Microsoft Update / WSUS / Intune compliance for the April 2026 Patch Tuesday rollout coverage.
Windows event logs
- Sysmon Event ID 11 (FileCreate) for executable writes into
C:\Windows\System32with imageMsMpEng.exe— corroborates Q1 where Sysmon is deployed. - Security 4656/4663 — handle requests / access to
\Device\...\config\SAMby non-system processes. - Defender Operational log (
Microsoft-Windows-Windows Defender/Operational) — remediation events immediately preceding anomalous System32 changes. - Hunt for reparse-point creation (Sysmon EID 11/2 or USN journal) where the target resolves into
System32.
CrowdStrike LogScale CQL Hunt Queries
Looks for: the Defender engine itself writing an executable into System32 — the junction-redirected privileged write. Defender legitimately quarantines into ProgramData, not System32, so this is high-fidelity.
// HUNT: MsMpEng.exe writes a PE into System32 (BlueHammer junction redirect) // CONF: high FP: low COST: low | REQUIRES: PeFileWritten #event_simpleName=/PeFileWritten|NewExecutableWritten/ | ContextBaseFileName=/^MsMpEng\.exe$/i | TargetFileName=/System32/i | table([ComputerName, ContextBaseFileName, TargetFileName, SHA256HashData], limit=200)
Looks for: creation of NTFS junctions / symlinks / reparse points — the exploit's redirection primitive. FP: some installers and dev tooling create junctions; scope to non-admin parents and correlate with Q1 in the same time window.
// HUNT: junction/symlink/reparse creation (oplock+junction redirect primitive) // CONF: high FP: med COST: low | REQUIRES: ProcessRollup2 // TUNING: exclude known installer/build accounts; prioritize System32 targets #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | CommandLine=/mklink|New-Item.*Junction|CreateSymbolicLink|fsutil reparsepoint/i | table([ComputerName, UserName, ParentBaseFileName, FileName, CommandLine], limit=200)
Looks for: hive-dump command lines hitting the SAM/SYSTEM registry — the credential-access payoff of the LPE. Near-zero benign use on production endpoints.
// HUNT: SAM/SYSTEM hive dump (post-LPE credential access) // CONF: high FP: low COST: low | REQUIRES: ProcessRollup2 #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | CommandLine=/reg.*save.*HKLM\\SAM|reg.*save.*\\sam|esentutl.*SAM|System32\\config\\SAM/i | table([ComputerName, UserName, FileName, CommandLine], limit=200)
Looks for: a SYSTEM-integrity process executing from Users/Temp/ProgramData — a classic post-LPE tell. FP: some software updaters drop into ProgramData and run as SYSTEM; allowlist known updaters and correlate with Q1/Q2.
// HUNT: SYSTEM-integrity process from a user-writable directory (post-LPE) // CONF: med FP: med COST: low | REQUIRES: ProcessRollup2 // TUNING: exclude approved updaters (e.g., known installer ImageFileNames) #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | IntegrityLevel=/SYSTEM|S-1-16-16384/i | ImageFileName=/\\Users\\|\\Temp\\|\\ProgramData\\/i | table([ComputerName, UserName, ImageFileName, FileName, CommandLine, IntegrityLevel], limit=200)
Looks for: a hash pivot for the Nightmare-Eclipse PoC / RedSun tooling. Populate the hash before deploying — it is a placeholder until vendor IOCs publish.
// HUNT: known BlueHammer/Nightmare-Eclipse tooling by hash (fill hash before use) // CONF: high FP: low COST: low | REQUIRES: ProcessRollup2 #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | SHA256HashData=/REPLACE_WITH_NIGHTMARE_ECLIPSE_SHA256/i | table([ComputerName, UserName, FileName, SHA256HashData, CommandLine], limit=200)
CrowdStrike Custom IOA Recommendations
| IOA Name | Pattern | Exclusions | Action |
|---|---|---|---|
| Defender-Writes-System32 | Image MsMpEng.exe writing a PE under System32 | None expected — Defender doesn't quarantine into System32 | Block |
| SAM-Hive-Dump | Command line saving/copying HKLM\SAM or System32\config\SAM | Sanctioned IR/forensics tooling (by host/account) | Detect → Block |
| Junction-To-System32 | Non-admin process creating a reparse point resolving into System32 | Known installers/build agents | Detect |
Promote Defender-Writes-System32 first — it is essentially FP-free and maps directly to the exploit primitive.
Machine-Readable IOC Appendix
One-click blocks. The behavioral, audit, and patch-gate blocks are deployable today; the atomic hash row is a placeholder until vendors publish.
type,value,action,severity,expiration,description,tags sha256,REPLACE_WITH_NIGHTMARE_ECLIPSE_SHA256,prevent,critical,2026-12-30,BlueHammer/Nightmare-Eclipse tool,campaign:CVE-2026-33825
MsMpEng.exe -> writes PE into C:\Windows\System32 Non-admin proc -> mklink / fsutil reparsepoint / CreateSymbolicLink -> System32 proc -> reg save HKLM\SAM | esentutl ...SAM | read System32\config\SAM SYSTEM-integrity proc launched from \Users\ \Temp\ \ProgramData\
CVE-2026-33825 "BlueHammer" - TOCTOU in Defender remediation; oplock + NTFS junction redirect write into System32 as SYSTEM; arbitrary read handle to SAM. RedSun - sibling technique abusing Defender cloud file-rollback (Cloud Files API). Nightmare-Eclipse - leaked PoC tooling (early April 2026); seen in live intrusion. Patch: April 2026 Patch Tuesday. KEV: 2026-04-22. Ransomware use: 2026-06-30.
# Confirm Defender platform/engine is the April-2026 update or newer: Get-MpComputerStatus | Select-Object AMProductVersion, AMEngineVersion, ` AMServiceVersion, NISEngineVersion, AntivirusSignatureLastUpdated # Flag any host whose AMProductVersion predates the April 2026 platform update.
Detection Validation Gates
| Gate | Check | Pass Criteria |
|---|---|---|
| Telemetry ready | PeFileWritten + ProcessRollup2 flowing from Windows endpoints | Recent events for representative hosts |
| Benign baseline | Run Q2/Q4 over 7–14 days | Catalog legitimate junction creators and SYSTEM updaters before alerting |
| Positive test | Lab: reg save HKLM\SAM C:\Temp\sam.hiv | Q3 fires |
| Promotion | Q1/Q3 to Custom IOA (Block); Q2/Q4 to Detect | Zero FP across baseline window before Block |
Hardening — Tiered
- Deploy the April 2026 Defender platform/engine update fleet-wide and verify with
Get-MpComputerStatus. This closes the vulnerability outright. (M1051 Update Software) - Confirm Defender is not pinned to an old platform version by policy; allow automatic platform updates. (M1051)
- Deploy the §8 behavioral hunts (Q1, Q3) as scheduled searches today. (M1040 Behavior Prevention)
- Promote Q1 (Defender→System32 write) and Q3 (SAM dump) to Custom IOAs in Block mode. (M1040)
- Enable / verify LSASS and SAM protection postures and restrict local-admin reuse to limit hash-replay value. (M1027 Password Policies, M1043 Credential Access Protection)
- Restrict the ability to create symbolic links / mount points to administrators only (review
SeCreateSymbolicLinkPrivilegeassignment). (M1018 User Account Management)
- Move to LAPS for unique local-admin passwords so a dumped SAM hash can't be replayed across the fleet. (M1026 Privileged Account Management, M1027)
- Application control (WDAC) to constrain what can run as SYSTEM from user-writable paths. (M1038 Execution Prevention)
- Tamper protection + EDR-on-EDR monitoring so abuse of the security stack itself raises alerts. (M1040)
⚠ Verify in tenant: confirm the exact April 2026 Defender platform build number against current MSRC guidance before treating a host as patched.
Deployable Playbooks
1 · Verify Defender platform update (PowerShell, fleet)
# Report Defender versions; flag hosts that predate the April 2026 platform update.
$s = Get-MpComputerStatus
[pscustomobject]@{
Host = $env:COMPUTERNAME
AMProductVersion = $s.AMProductVersion
AMEngineVersion = $s.AMEngineVersion
SignaturesUpdated= $s.AntivirusSignatureLastUpdated
} | Format-List
# Push via your RMM and alert on any AMProductVersion older than the April 2026 build.
2 · Restrict symlink/junction creation to admins (secedit / GPO)
# User Rights Assignment: "Create symbolic links" (SeCreateSymbolicLinkPrivilege) # GPO path: Computer Config > Policies > Windows Settings > Security Settings > # Local Policies > User Rights Assignment > Create symbolic links # Set to: Administrators only (remove any broad/user groups). # Verify on a host: whoami /priv | findstr SeCreateSymbolicLinkPrivilege
3 · Falcon CQL spot-check after patch
# Should return ZERO once patched + IOAs in place: #event_simpleName=/PeFileWritten/ | ContextBaseFileName=/^MsMpEng\.exe$/i | TargetFileName=/System32/i | table([ComputerName, TargetFileName])
Containment Runbook
| Phase | Actions | Owner | Evidence |
|---|---|---|---|
| Isolate | Network-contain hosts with Q1/Q3 hits in Falcon; treat as active ransomware-precursor escalation | SOC | Containment ID, process timeline |
| Eradicate | Remove attacker-written System32 binaries + tooling; restore overwritten system files from known-good; deploy April 2026 Defender update | IT Ops | File hashes, before/after System32 listing |
| Rotate | Rotate local-admin passwords (any host with a dumped SAM is compromised); rotate domain creds used on those hosts; move to LAPS | Identity team | Rotation tickets |
| Recover | Rebuild if System32 integrity is in doubt; re-image high-value hosts; confirm §8 queries clean | IT Ops | Clean-scan results |
| Lessons | Verify fleet patch coverage; deploy IOAs; review symlink-privilege assignments | Security lead | Post-incident report |
Detection Coverage Map
| Technique | Behavior | CQL | IOA | Coverage |
|---|---|---|---|---|
| T1068 | Defender→System32 privileged write | Q1 | Yes | Good |
| T1574.005 | Junction/reparse redirect | Q2 | Yes | Partial — junction telemetry can be indirect |
| T1003.002 | SAM hive dump | Q3 | Yes | Good |
| T1059 (post-LPE) | SYSTEM proc from user-writable path | Q4 | — | Partial — FP tuning needed |
| Tooling | Nightmare-Eclipse by hash | Q5 | — | GAP — hash not yet published |
| T1486 | Ransomware impact (downstream) | — | — | GAP — separate ransomware pack |
Strongest coverage is the exploit primitive and its payoff (Q1, Q3 — high CONF, low FP, IOA-ready). Gaps: atomic tooling hash (pending publication) and downstream ransomware impact (own pack). Validation: baseline Q2/Q4 for benign junction creators / SYSTEM updaters before promoting to Block.
Hunt Summary Ticket
TITLE: BlueHammer CVE-2026-33825 -> Defender LPE / SAM access (RedSun)
SEVERITY: Critical (CVSS 7.8, exploited by ransomware gangs, CISA KEV)
SCOPE: All Windows endpoints + servers running Defender AV
HYPOTHESIS: TOCTOU oplock+junction -> Defender writes System32 as SYSTEM -> SAM dump
QUERIES: Q1 MsMpEng->System32 | Q2 junction | Q3 SAM dump | Q4 SYSTEM-from-userdir | Q5 hash
DO FIRST: Verify April-2026 Defender update fleet-wide (Get-MpComputerStatus);
run Q1 + Q3
FINDINGS: <fill in>
GAPS: Tooling hash (pending); downstream ransomware impact (separate pack)
ACTIONS: Patch Defender; promote Q1/Q3 IOAs; rotate local-admin creds; move to LAPS
OWNER: <assign>
VERSION: v0.2 · 2026-06-30
Changelog
table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.References
| Tier | Source | Used For | Access Date |
|---|---|---|---|
| 1 · Gov | CISA KEV Catalog | KEV listing, ransomware-exploitation confirmation | 2026-06-30 |
| 2 · Press | BleepingComputer — BlueHammer now exploited by ransomware gangs | Timeline, SAM access, ransomware adoption | 2026-06-30 |
| 2 · Research | Picus Security — BlueHammer & RedSun explained | TOCTOU + oplock + junction mechanics; RedSun; affected versions | 2026-06-30 |
| 2 · IR | Huntress — Nightmare-Eclipse tooling in real-world intrusion | In-the-wild tooling corroboration | 2026-06-30 |
| 2 · Press | SecurityWeek — Defender vuln exploited as zero-day | Exploitation status, patch timing | 2026-06-30 |