CVE-2026-41091 (RedSun) — Microsoft Defender Link-Following Elevation of Privilege

Improper link resolution (CWE-59) in the Microsoft Malware Protection Engine: an unprivileged user writes a crafted file to a privileged location, MMPE follows the symlink/junction and writes it back as SYSTEM. KEV-listed, exploited in the wild (Nightmare Eclipse). Patched in MMPE v1.1.26040.8. Defensive hunt & harden pack — no exploit code.
Threat
CVE-2026-41091 · "RedSun" · Nightmare Eclipse
Severity
KEV · EXPLOITED ITW · CVSS 7.8
Type
Local privilege escalation (AV link-following)
Patch
MMPE v1.1.26040.8 (from v1.26030.3008)
Paired
CVE-2026-45498 (Defender LPE, also KEV) · CVE-2026-45584 (Defender RCE)
Version
v0.4 · 2026-06-12
Author
HuntPack
01

Executive Summary

CVE-2026-41091 — tracked publicly as "RedSun" — is an "improper link resolution before file access" (link-following, CWE-59) flaw in the Microsoft Malware Protection Engine (MsMpEng.exe / mpengine.dll). An unprivileged attacker stages a reparse point (junction/symlink) and writes a crafted file to a privileged location; MMPE, running as SYSTEM, follows the link and writes the file back to that location — yielding code execution as SYSTEM. CVSS 7.8, rated Exploitation Detected · Weaponized · Publicly Aware, and added to the CISA KEV catalog.

It was disclosed by the researcher cluster "Chaotic / Nightmare Eclipse" on 2026-04-15 and is one of a series of Defender-engine attacks from the same group — alongside CVE-2026-45498 (a second exploited Defender LPE), the Defender RCE CVE-2026-45584, and the later unpatched RoguePlanet PoC that bypassed Microsoft's mid-May hardening. Unlike RoguePlanet, RedSun has a fix: Microsoft patched it in Malware Protection Engine v1.1.26040.8 (engine updates apply automatically, but verify across the fleet).

Defender priority: Confirm MMPE ≥ v1.1.26040.8 fleet-wide (N3) — that closes the vuln. Until verified, the behavioral hunts below are the safety net. Highest-fidelity signal: Q1 — the Defender engine writing a PE into a protected directory (the link-following write-back). Escalate any hit. The same junction-redirect primitive recurs across this actor's tooling, so these detections cover the family, not just one CVE.
02

Source Review & Web Hunter Notes

TierSourceKey FindingCarry
1 · Vendor (PSIRT)Microsoft MSRC — CVE-2026-41091Link-following LPE in MMPE; exploited/weaponized/publicly aware; fixed v1.1.26040.8yes
1 · News of recordThe Hacker News — Microsoft Warns of Two Actively Exploited Defender VulnsCVE-2026-41091 + CVE-2026-45498 exploited; CISA KEV; "RedSun"; Nightmare Eclipse 2026-04-15 disclosureyes
2 · Vendor researchHelp Net Security / ZDIMMPE versions affected (v1.26030.3008) → fixed v1.1.26040.8; LPE write-back mechanismyes
2 · AggregatorTheWindowsUpdate / SecurityBoulevardJune 2026 Patch Tuesday context; record CVE count; Defender exploit clusterpartial
1 · Sibling intelPicus — RoguePlanet / Nightmare Eclipse analysisSame junction-redirect primitive; MsMpEng.exe lineage + protected-dir writes; infra IOCs (carried for the family)yes

Decisions: lead with the patch (MMPE v1.1.26040.8 closes it — the behavioral hunts are the interim/defense-in-depth net); reuse the Nightmare Eclipse family detection logic (link-following write-back, SYSTEM-parented shells) validated against the RoguePlanet sibling; key the durable detections on behavior since the same primitive recurs across the actor's CVEs.

03

Hunt Brief & Attack Chain

Working hypothesis: A standard-user process stages a reparse point in a user-writable directory and writes a crafted file targeting a privileged path; the Defender engine (SYSTEM) follows the link during a scan/remediation and writes the file into the protected location, after which a SYSTEM-integrity payload (planted DLL/binary/task) executes.

StepBehaviorTelemetryHunt Angle
1 · FootholdLow-priv code execution (commodity malware / local user)ProcessRollup2Baseline
2 · Stage reparse + craft fileJunction/symlink in %TEMP%/%LOCALAPPDATA%/ProgramData pointing at a privileged path; write crafted payloadSysmon EID 11N1; proxy via protected-dir write
3 · Defender follows linkMMPE (SYSTEM) scans/remediates → writes the file back to the privileged locationPeFileWrittenQ1 — engine PE write to protected dir
4 · SYSTEM executionPlanted binary/DLL/task runs at SYSTEMProcessRollup2Q2 / Q4
Post · Persist/spreadNew local admin, service, or task with SYSTEM rightsServiceInstalled, ScheduledTaskRegisteredContainment §11

Affected surface & telemetry

SurfaceRequired TelemetryPriorityGap Risk
Windows endpoints running MMPE < v1.1.26040.8Defender platform/engine version inventoryCriticalLow — query engine version directly
Defender-engine file opsPE write w/ writing-process context (PeFileWritten)HighMedium — non-PE writes not captured
Reparse / junction creationFileCreate w/ reparse attributeMediumHigh — needs Sysmon EID 11
SYSTEM execution lineageProcess lineage + AuthenticationId (ProcessRollup2)HighLow — standard sensor
04

Consolidated IOC Table

The patch (MMPE v1.1.26040.8) is the definitive control; the strongest detections are behavioral. Group infrastructure IOCs are perishable — enrichment/pivot only. Copy-ready blocks in §9.
TypeValueConfActionContext
VersionMMPE < v1.1.26040.8highdetectVulnerable engine — patch closes the flaw
BehaviorMsMpEng.exe writing PE into \System32\ / \Program Files\highdetectLink-following write-back outcome (RedSun core)
BehaviorMsMpEng.exe → cmd/powershell/conhost (SYSTEM)highdetectSYSTEM exec via the engine (no benign equivalent)
Domainprojectnightcrawler.devmediumhuntNightmare Eclipse exploit host (family infra)
Domaindeadeclipse666.blogspot.commediumhuntGroup disclosure channel
05

ATT&CK Mapping

TacticTechniqueObserved BehaviorQuery / Control
Privilege EscalationT1068 — Exploitation for Privilege EscalationLink-following in MMPE yields SYSTEMQ1, Q2, Q4; patch
PrivEsc / Defense EvasionT1574 — Hijack Execution FlowJunction/symlink redirects a privileged write-backQ1, Q4; N1
Privilege EscalationT1548 — Abuse Elevation Control MechanismStandard user reaches SYSTEM integrityQ2, Q4
ExecutionT1059.001 / .003 — PowerShell / Windows Command ShellSYSTEM shell via the engineQ2
Defense EvasionT1211 — Exploitation for Defense EvasionSubverts the AV product to gain SYSTEMWDAC/AppLocker §10
06

Native Audit-Log Hunts

HuntSourceLogicResponse
N1 · Reparse point in tempSysmon EID 11 (FileCreate)Junction/symlink creation in %TEMP%/%LOCALAPPDATA%/ProgramData preceding a Defender writeHigh-fidelity if Sysmon deployed; pairs with Q1
N2 · WDAC/AppLocker blockAppLocker/*, CodeIntegrity/OperationalBlocked execution of an unsigned SYSTEM binary from a user/planted pathConfirms control working; investigate payload
N3 · MMPE version inventoryGet-MpComputerStatusAMEngineVersionEndpoints with engine < v1.1.26040.8 (vulnerable)Force Defender platform/engine update; the fix
N4 · Defender exploit-cluster infraProxy / DNS logsResolution of projectnightcrawler.dev / deadeclipse666.blogspot.comInvestigate host; perishable
07

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Field names validated against the Falcon event reference; process hunts include SyntheticProcessRollup2. These mirror the RoguePlanet family detections — once MMPE ≥ v1.1.26040.8 is verified fleet-wide (N3), keep them as defense-in-depth for the recurring junction-redirect primitive.
Q1 · Defender engine writing a PE into a protected system directory
CONF HIGHFP LOWCOST LOW-MED

Looks for: MsMpEng.exe as the writing process for a PE in System32/SysWOW64/Program Files. Accomplishes: catches the RedSun link-following write-back — the core exploit outcome.

// HUNT: Defender engine writing a PE into a protected system directory (CVE-2026-41091)
// MITRE: T1574, T1068 | CONF: high  FP: low  COST: low-med
// FP NOTES: Defender writes signatures/platform binaries into its OWN dirs, excluded below
#event_simpleName=/PeFileWritten|NewExecutableWritten/
| ContextBaseFileName=/^MsMpEng\.exe$/i
| TargetFileName=/\\(System32|SysWOW64|Program Files( \(x86\))?)\\/i
| TargetFileName!=/\\(Windows Defender|Microsoft\\Windows Defender|Microsoft\\Windows Security)\\/i
| table([@timestamp, ComputerName, ContextBaseFileName, TargetFileName, SHA256HashData], limit=200)
Q2 · Defender engine spawning a shell / script host
CONF HIGHFP LOWCOST LOW

Looks for: MsMpEng.exe as the parent of a shell or scripting host. Accomplishes: catches SYSTEM code execution via the engine — no benign equivalent.

// HUNT: Microsoft Defender engine spawning an interactive shell or script host
// MITRE: T1068, T1059.001/.003, T1548 | CONF: high  FP: low  COST: low
// FP NOTES: Defender legitimately launches MpCmdRun.exe / MsMpEngCP.exe, never interactive shells
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName=/^MsMpEng\.exe$/i
| FileName=/^(cmd|powershell|powershell_ise|pwsh|conhost|cscript|wscript|mshta|rundll32|regsvr32)\.exe$/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine, AuthenticationId, SHA256HashData], limit=200)
| sort(@timestamp, order=desc)
Q3 · Anomalous child process of the Defender engine (broad net)
CONF HIGHFP LOW-MEDCOST LOW

Looks for: any child of MsMpEng.exe that is not a known Defender helper. FP: Defender helpers (MpCmdRun.exe, NisSrv.exe) — excluded; validate per platform version.

// HUNT: Anomalous child process of the Microsoft Defender engine
// MITRE: T1068, T1574 | CONF: high  FP: low-med  COST: low
// TUNING: exclude the known Defender helper set; alert on anything else parented by MsMpEng.exe
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName=/^MsMpEng\.exe$/i
| FileName!=/^(MpCmdRun|MsMpEngCP|NisSrv|MpDlpService|MsSense|SenseIR|SenseCncProxy|MpDefenderCoreService)\.exe$/i
| table([@timestamp, ComputerName, UserName, FileName, ImageFileName, CommandLine, SHA256HashData], limit=200)
Q4 · SYSTEM-integrity process executing from a user-writable path
CONF LOW-MEDFP MEDCOST LOW-MED

Looks for: a process running as SYSTEM (AuthenticationId 999) whose image sits in a user temp / ProgramData path. FP: SYSTEM-context installers from %TEMP% — pair with Q1/Q2 on same host.

// HUNT: SYSTEM-integrity process launched from a user-writable directory
// MITRE: T1068, T1574, T1059 | CONF: low-med  FP: medium  COST: low-med
// TUNING: correlate to Q1/Q2 hits on same aid; exclude known signed installer/update paths
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| AuthenticationId=999
| ImageFileName=/\\(Users\\[^\\]+\\AppData\\Local\\Temp|ProgramData)\\.+\.(exe|dll|scr)$/i
| table([@timestamp, ComputerName, UserName, ImageFileName, CommandLine, ParentBaseFileName, SHA256HashData], limit=200)
Q5 · DNS resolution of Nightmare Eclipse infrastructure
CONF HIGHFP LOWCOST LOW

Looks for: resolution of the group's known exploit-hosting / disclosure domains. Investigate-only, perishable infrastructure shared across the actor's CVEs.

// HUNT: DNS resolution of known Nightmare Eclipse infrastructure (family)
// MITRE: T1071 | CONF: high  FP: low  COST: low
// FP NOTES: security researchers / sandboxes intentionally resolving the domains
#event_simpleName=DnsRequest
| DomainName=/(^|\.)projectnightcrawler\.dev$|(^|\.)deadeclipse666\.blogspot\.com$/i
| table([@timestamp, ComputerName, ContextBaseFileName, DomainName], limit=200)
Q6 · Defender platform/engine downgrade or out-of-band change
CONF MEDFP LOWCOST LOW

Looks for: processes invoking MpCmdRun.exe with engine/platform rollback or removal flags. Accomplishes: surfaces attempts to revert to a vulnerable MMPE. FP: sanctioned IT maintenance — allow-list.

// HUNT: Defender engine/platform downgrade or removal attempt
// MITRE: T1562.001 | CONF: medium  FP: low  COST: low
// TUNING: allow-list sanctioned maintenance hosts/AIDs
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| FileName=/^MpCmdRun\.exe$/i
| CommandLine=/(-RemoveDefinitions|-revertplatform|-ReversePassiveMode|-rollback)/i
| table([@timestamp, ComputerName, UserName, CommandLine, ParentBaseFileName], limit=200)
08

CrowdStrike Custom IOA Recommendations

IOA NameField PatternsBenign ExclusionsDeployment Path
RedSun — Defender writes PE to System32Writing Image *\MsMpEng.exe; Target *\System32\* / *\Program Files\* excl. Defender dirsDefender's own directories (excluded)Custom IOA → File Write (or scheduled-search detect)
RedSun — Defender engine spawns shellParent Image *\MsMpEng.exe; Child cmd/powershell/conhost/cscript/wscript.exeNone expected — promote high severity, Detect+BlockEndpoint Security → Custom IOA → Process Creation
Q1 and Q2 are both strong promotions (no benign baseline). Q4 stays hunt/investigate-only due to FP risk.
09

Machine-Readable IOC Appendix

Grouped IOC Quick-Copy

One-click blocks for Falcon IOC Management, version audits, and hardening. The patch (MMPE v1.1.26040.8) is the fix; behavior + version are the durable detections.

Falcon IOC Management CSVbulk import
type,value,action,severity,expiration,description,tags
domain,projectnightcrawler.dev,detect,high,2026-09-12,Nightmare Eclipse exploit host (family),campaign:RedSun
domain,deadeclipse666.blogspot.com,detect,medium,2026-09-12,Nightmare Eclipse disclosure channel,campaign:RedSun
sha256,REPLACE_WITH_PAYLOAD_SHA256,prevent,critical,2027-06-12,RedSun SYSTEM payload,campaign:RedSun
Behavioral Signaturesdetection logic
MsMpEng.exe writes a PE into \System32 or \Program Files (link-following write-back)
MsMpEng.exe spawns cmd/powershell/conhost/cscript/wscript at SYSTEM
Junction/symlink (reparse point) created in %TEMP%/%LOCALAPPDATA%/ProgramData pre-Defender write
SYSTEM-integrity process (AuthenticationId 999) executing from %TEMP%/ProgramData
MpCmdRun.exe invoked with -RemoveDefinitions / -revertplatform (downgrade to vulnerable engine)
Version / Patch Auditthe fix
# Confirm Malware Protection Engine is patched (>= v1.1.26040.8)
Get-MpComputerStatus | Select-Object AMEngineVersion, AMProductVersion, AMServiceVersion
# Vulnerable: AMEngineVersion < 1.1.26040.8 (e.g. 1.26030.3008)
# Force update fleet-wide:
Update-MpSignature
# CISA KEV: CVE-2026-41091 + CVE-2026-45498 (apply MMPE update by the BOD deadline)
Family CVEs / MitigationsNightmare Eclipse
CVE-2026-41091   # RedSun — Defender link-following LPE (this pack) — fixed v1.1.26040.8
CVE-2026-45498   # second exploited Defender LPE (also CISA KEV)
CVE-2026-45584   # Defender RCE (same engine update)
RoguePlanet      # later unpatched PoC (bypassed May hardening) — see RoguePlanet-Hunt.html
# Defense-in-depth: WDAC/AppLocker enforce; fsutil behavior set SymlinkEvaluation R2L:0 R2R:0
10

Hardening — Tiered & Deployable

Unlike RoguePlanet, this one is patchable — patching is the fix. The rest is defense-in-depth against the recurring junction-redirect primitive.

Immediate — Patch the engine (the fix)
  • Verify MMPE ≥ v1.1.26040.8 fleet-wideM1051. Get-MpComputerStatus | Select AMEngineVersion; force with Update-MpSignature. Closes CVE-2026-41091/45498/45584. CISA KEV — meet the BOD deadline.
  • Keep Defender platform on the current channel + Tamper Protection ONM1054. Block engine downgrade/rollback (Q6).
  • Application allowlisting (WDAC / AppLocker), enforce modeM1038. Stops the SYSTEM payload from running even if the write-back succeeds.
  • Disable remote symlink evaluationM1042: fsutil behavior set SymlinkEvaluation R2L:0 R2R:0.
Near term — Constrain the surface (pilot first)
  • Remove standing local admin; deploy LAPSM1026. Limits the value of a SYSTEM foothold.
  • ASR + PowerShell Constrained Language Mode + script-block loggingM1042 / M1038 / M1040. Raises cost of the SYSTEM payload; improves Q2 evidence.
  • Restrict standard-user disk-image mountingM1042. Removes the related remote-image variant primitive.
Strategic — Contain & default-deny
  • Enterprise WDAC signed-only code-integrity policyM1045 / M1038.
  • HVCI + Credential GuardM1043. Contain blast radius if SYSTEM is reached.
  • Continuous AV-tamper / config-drift & engine-version monitoringM1054. Alert on Defender self-modification and version drift fleet-wide.
11

Containment Runbook

PhaseActionsOwnerEvidence
IsolateNetwork-contain the host in Falcon; do not power off (preserve volatile SYSTEM state)SOC L2Containment timestamp; Q1/Q2 event
TriagePull the MsMpEng.exe write/child tree; capture the PE written into System32/Program Files and any SYSTEM shell command lineSOC L2Process/file tree; Q1/Q2 rows
EradicateRemove the planted binary/DLL/task; delete staged junctions; check for new local admin, service, or task created post-escalationIRService/task/group review
RecoverForce MMPE ≥ v1.1.26040.8; rotate credentials for accounts used on the host; verify Tamper Protection; re-image if SYSTEM execution confirmedIR + ITEngine version; cred-rotation log
HardenConfirm patch fleet-wide; push §10 controls; promote Q1/Q2 IOAsDetection EngPatch coverage; IOA enabled
12

Detection Coverage Map & Validation

TechniqueBehaviorCQLIOACoverage
Vulnerable MMPE versionGood patch + N3 inventory
T1574 / T1068Link-following write-back to System32Q1IOA-1Good
T1068 / T1059SYSTEM shell from Defender engineQ2, Q3IOA-2Good
T1574Reparse/junction stagingGAP needs Sysmon EID 11 (N1)
T1068SYSTEM exec from user pathQ4Partial FP risk; correlate Q1/Q2
T1562.001Engine downgrade to vulnerable buildQ6Good

Validation gates: (1) confirm PeFileWritten + ProcessRollup2 context fleet-wide; (2) Q1/Q2 return zero hits in a 30-day benign lookback; (3) inventory MMPE versions (N3) and confirm patched build; (4) lab-validate lineage firing with a benign parent-spoof harness — never the live exploit; (5) promote Q1/Q2 to Custom IOA Detect+Block (target FP < 1/week).

13

Hunt Summary Ticket

TITLE:        Hunt — CVE-2026-41091 "RedSun" (Microsoft Defender Link-Following LPE)
SEVERITY:     High (CISA KEV, exploited ITW, CVSS 7.8; SYSTEM via the AV engine)
SCOPE:        Windows endpoints running MMPE < v1.1.26040.8
HYPOTHESIS:   Standard-user process stages a junction + writes a crafted file to a
              privileged path; MMPE (SYSTEM) follows the link and writes it back ->
              SYSTEM code execution.
QUERIES RUN:  Q1 Defender PE write to System32 (IOA) | Q2 Defender->shell (IOA) |
              Q3 anomalous Defender child | Q4 SYSTEM exec from user path |
              Q5 Nightmare Eclipse infra DNS | Q6 engine downgrade
              + Native N1-N4 (reparse EID11, AppLocker block, MMPE version, infra DNS)
DO FIRST:     Patch (MMPE >= v1.1.26040.8); then Q1, Q2 — escalate any hit
FINDINGS:     <pending analyst execution>
GAPS:         Reparse-point telemetry weak in EDR (needs Sysmon)
ACTIONS:      Force MMPE patch fleet-wide; WDAC/AppLocker enforce; disable remote symlink
              eval; promote Q1/Q2 to Custom IOA Detect+Block
OWNER:        HuntPack
VERSION:      v0.4 - 2026-06-12
14

Changelog

v0.42026-07-24CQL correctness pass. All 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.
v0.32026-06-12Re-hunt + reformatted to the review-v2 gold layout (fixed left-sidebar scrollspy TOC, collapsible, cloud selector inside the CQL section, per-card Copy/Open-in-Falcon, Grouped IOC Quick-Copy grid, coverage+validation, .ticket). Confirmed KEV listing + patched build (MMPE v1.1.26040.8), "RedSun"/Nightmare Eclipse attribution, family links (CVE-2026-45498/45584, RoguePlanet). 6 CQL + 4 native hunts, 2 IOA candidates.
v0.12026-05-26Initial pack: Defender link-following LPE, 7 queries, hardening. Pre-gold top-bar layout.
15

References

TierSourceUsed For
1Microsoft MSRC — CVE-2026-41091Mechanism, affected/fixed engine versions, exploitation status
1The Hacker News — Two Actively Exploited Defender VulnerabilitiesRedSun attribution, KEV, paired CVE-2026-45498
2Help Net Security — Defender vulnerabilities exploitedEngine versions, write-back mechanism
2TheWindowsUpdate — CVE-2026-41091 · CISA KEVPatch context; KEV listing
1Picus — Nightmare Eclipse / RoguePlanet analysisFamily junction-redirect primitive, detection logic, infra IOCs

HuntPack v0.3 · CVE-2026-41091 (RedSun) · Generated 2026-06-12 · Defensive use only — no exploit code. The patch (MMPE v1.1.26040.8) is the fix; behavioral hunts are defense-in-depth for the recurring Nightmare Eclipse primitive. Validate field names in your tenant before promoting any query to alerting.