CVE-2026-41091 Splunk · SPL

Detect Microsoft Defender Link Following Privilege Escalation (CVE-2026-41091) in Splunk

Detects exploitation of CVE-2026-41091, a link-following vulnerability (CWE-59) in Microsoft Defender that allows attackers to follow symbolic links or junction points to access or overwrite privileged files. This vulnerability is actively exploited in the wild (CISA KEV) and can lead to privilege escalation or arbitrary file manipulation in the context of the Defender service.

MITRE ATT&CK

Tactic
Privilege Escalation Defense Evasion

SPL Detection Query

Splunk (SPL)
spl
index=wineventlog OR index=sysmon sourcetype IN ("WinEventLog:Security", "XmlWinEventLog:Microsoft-Windows-Sysmon/Operational")
| eval defender_path_match=if(match(Object_Name, "(?i)(ProgramData\\\\Microsoft\\\\Windows Defender|Program Files\\\\Windows Defender)") OR match(TargetFilename, "(?i)(ProgramData\\\\Microsoft\\\\Windows Defender|Program Files\\\\Windows Defender)"), 1, 0)
| eval suspicious_proc=if(match(lower(coalesce(Process_Name, Image)), "(cmd\.exe|powershell\.exe|wscript\.exe|cscript\.exe|mshta\.exe|rundll32\.exe)"), 1, 0)
| where (EventCode IN (4656, 4663) AND defender_path_match=1 AND suspicious_proc=1)
   OR (EventCode=1 AND suspicious_proc=1 AND defender_path_match=1)
   OR (EventCode=11 AND defender_path_match=1 AND suspicious_proc=1)
   OR (EventCode IN (4688) AND match(CommandLine, "(?i)(mklink|junction|symlink)") AND defender_path_match=1)
| eval alert_detail="CVE-2026-41091: Suspicious link/file op in Defender path by " + coalesce(SubjectUserName, User, "-")
| stats count min(_time) as first_seen max(_time) as last_seen values(CommandLine) as commands values(Object_Name) as target_paths by Computer, SubjectUserName, Process_Name, alert_detail
| where count >= 1
| sort - last_seen
high severity medium confidence

Detects suspicious processes creating symlinks, junctions, or accessing Microsoft Defender paths in a manner consistent with CVE-2026-41091 link-following exploitation.

Data Sources

Windows Security Event LogSysmon

Required Sourcetypes

WinEventLog:SecurityXmlWinEventLog:Microsoft-Windows-Sysmon/Operational

False Positives & Tuning

  • Legitimate Defender signature update processes
  • Windows Update touching Defender components during patch cycles
  • Security tooling that inspects Defender directories for audit purposes
  • IT automation scripts managing Defender exclusions via command line

Other platforms for CVE-2026-41091


Testing Methodology

Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1Create Symlink Targeting Defender Definitions Directory

    Expected signal: Sysmon Event ID 11 with TargetFilename=C:\Users\Public\DefenderLink and Image=cmd.exe; Windows Security Event 4663 if object auditing is enabled for the Defender directory

  2. Test 2Junction Point Creation via mklink Referencing Defender Support Logs

    Expected signal: Process creation event for cmd.exe with CommandLine containing 'mklink /J' and 'Windows Defender'; Sysmon Event ID 1 capturing the full command line

  3. Test 3PowerShell-Based Symlink Creation Targeting Defender Quarantine

    Expected signal: Sysmon Event ID 1 with Image=powershell.exe and CommandLine referencing mklink and Windows Defender Quarantine path; parent-child chain of powershell.exe → cmd.exe visible in process tree


Response Playbook

Triage

  1. Identify the process and user account that created the symlink or junction pointing into a Microsoft Defender directory — check process lineage to determine if it originated from a user-interactive session or a scheduled task.
  2. Determine whether Microsoft Defender was actively scanning files at the time of the event, which would indicate the vulnerability was triggered with Defender acting on a maliciously crafted link target.
  3. Review the target of the symlink or junction to identify what privileged file or directory was being impersonated — assess whether it is a sensitive system path (e.g., SAM, SYSTEM hive, LSA secrets).
  4. Check the endpoint's current Defender version and patch level against the Microsoft Security Response Center advisory for CVE-2026-41091 to confirm whether the system is running a vulnerable build.

Containment

  1. Isolate the affected endpoint from the network using your EDR platform (CrowdStrike, Defender for Endpoint) to prevent lateral movement while the investigation is ongoing.
  2. Remove any symlinks or junction points identified in Defender directories and restore the original directory structure; then force a Defender update to the latest patched version via Windows Update or WSUS/Intune.

Evidence Collection

  1. Collect the Windows Security Event Log (4656, 4663, 4688) and Sysmon log (Event ID 1, 11) from the affected endpoint covering the 24-hour window around the alert timestamp and preserve as a forensic artefact.
  2. Capture a memory image of the affected endpoint using a trusted tool (e.g., WinPmem) if active exploitation is suspected, and collect the MpOperationalEvents log from `%ProgramData%\Microsoft\Windows Defender\Support\` for Defender-specific activity.

Escalation Criteria

  • !Escalate immediately to incident response if the symlink target resolves to a sensitive credential store (SAM, SYSTEM, SECURITY registry hives, LSASS dump path) or if any new local administrator accounts were created within 15 minutes of the alert.
  • !Escalate if the same technique is detected on more than three endpoints in a 60-minute window, indicating automated lateral movement or a worm-like propagation campaign exploiting CVE-2026-41091.

Investigation Guide

Related Techniques

Forensic Artifacts

  • >Symbolic link or junction point entries under `%ProgramData%\Microsoft\Windows Defender\` or `%ProgramFiles%\Windows Defender\` visible via `dir /AL` or `fsutil reparsepoint query`
  • >Windows Security Event 4663 (Object Access) with Defender service paths and a non-Defender initiating process in the audit log
  • >Sysmon Event ID 11 (FileCreate) with `TargetFilename` matching Defender directories initiated by cmd.exe, powershell.exe, or similar
  • >Defender operational log at `%ProgramData%\Microsoft\Windows Defender\Support\MPLog-*.log` showing unexpected file access errors or permission-denied events during scans

Tuning Guidance

Begin by establishing a baseline of legitimate Defender self-update and Windows Update processes that touch Defender directories (typically `MpCmdRun.exe`, `MsMpEng.exe`, `TrustedInstaller.exe`, `svchost.exe` under `wuauserv`). Whitelist these parent processes explicitly. Increase confidence to 'high' after baselining once false positive rate drops below 5% over a two-week observation window. For high-value environments, consider tuning the time window down to 2-minute sequences (from 5 minutes) to reduce dwell time between link creation and Defender interaction.


Hunting Queries

Broad 30-day threat hunt for any symlink, junction, or hard link creation events targeting Microsoft Defender directories, intended to surface historical exploitation or reconnaissance that predated alerting coverage.

Hunting — KQL
kql
DeviceEvents
| where Timestamp > ago(30d)
| where ActionType in ('SymlinkCreated','JunctionCreated','HardLinkCreated')
| where FolderPath has_any (['\\Windows Defender\\', '\\Windows Defender Advanced Threat Protection\\'])
| project Timestamp, DeviceName, InitiatingProcessAccountName, InitiatingProcessFileName, InitiatingProcessCommandLine, FolderPath, FileName
| order by Timestamp desc
Hunting — SPL
spl
index=sysmon sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventID=11
| eval is_defender_path=if(match(TargetFilename, "(?i)(Windows Defender|MsMpEng)"), 1, 0)
| where is_defender_path=1
| stats count min(_time) as first_seen max(_time) as last_seen values(TargetFilename) as targets by Computer, Image, User
| sort - last_seen

Atomic Red Team Tests

Test 1 Create Symlink Targeting Defender Definitions Directory
windows

Simulates the initial step of CVE-2026-41091 exploitation by creating a directory symlink from a writable user location that points to the Microsoft Defender definitions directory, mimicking an attacker attempting to redirect Defender's file access.

Command

powershell
cmd.exe /c mklink /D C:\Users\Public\DefenderLink "C:\ProgramData\Microsoft\Windows Defender\Definition Updates"

Cleanup

powershell
cmd.exe /c rmdir C:\Users\Public\DefenderLink

Expected Telemetry

Sysmon Event ID 11 with TargetFilename=C:\Users\Public\DefenderLink and Image=cmd.exe; Windows Security Event 4663 if object auditing is enabled for the Defender directory

Expected Detection

CVE-2026-41091 KQL/SPL query triggers on SymlinkCreated action with Defender path reference and cmd.exe as initiating process

Test 2 Junction Point Creation via mklink Referencing Defender Support Logs
windows

Creates an NTFS junction point from a temp directory to the Defender support log directory to simulate an attacker attempting to access privileged Defender diagnostic data via a link-following vulnerability.

Command

powershell
cmd.exe /c mklink /J C:\Temp\dflog "C:\ProgramData\Microsoft\Windows Defender\Support"

Cleanup

powershell
cmd.exe /c rmdir C:\Temp\dflog

Expected Telemetry

Process creation event for cmd.exe with CommandLine containing 'mklink /J' and 'Windows Defender'; Sysmon Event ID 1 capturing the full command line

Expected Detection

Chronicle YARAL and Elastic EQL sequence rules fire on the junction creation command matching Defender path patterns

Test 3 PowerShell-Based Symlink Creation Targeting Defender Quarantine
windows

Uses PowerShell to invoke cmd.exe for creating a symbolic link targeting the Defender quarantine directory, replicating a script-based attacker approach that may bypass simple process-name allowlists.

Command

powershell
powershell.exe -NoProfile -Command "& cmd.exe /c mklink /D $env:TEMP\QuarantineLink 'C:\ProgramData\Microsoft\Windows Defender\Quarantine'"

Cleanup

powershell
powershell.exe -Command "Remove-Item -Path $env:TEMP\QuarantineLink -Force -ErrorAction SilentlyContinue"

Expected Telemetry

Sysmon Event ID 1 with Image=powershell.exe and CommandLine referencing mklink and Windows Defender Quarantine path; parent-child chain of powershell.exe → cmd.exe visible in process tree

Expected Detection

CrowdStrike CQL and QRadar AQL rules detect PowerShell parent with mklink CommandLine referencing Defender; Sumo Logic query matches on processname=powershell.exe with defender keyword in command

Related Detections