CVE-2026-41089: MITRE ATT&CK Mapping, SIEM Queries, and Domain Controller Hardening
CVE-2026-41089: MITRE ATT&CK Mapping, SIEM Queries, and Domain Controller Hardening
The final part of this series maps CVE-2026-41089's full attack chain to MITRE ATT&CK, provides production-ready SIEM queries across all major platforms, documents the log sources and behavioral indicators your SOC needs, and delivers a prioritized Domain Controller hardening checklist that addresses this vulnerability class at the architectural level — not just this CVE.
MITRE ATT&CK Mapping
CVE-2026-41089 maps across multiple ATT&CK tactics depending on how far the attacker progresses. The DoS path covers three tactics reliably. Full RCE, if achieved, extends through seven. Each technique below is directly tied to an observable stage in the attack chain.
| Tactic | Technique | ID | CVE-2026-41089 Context |
|---|---|---|---|
| Reconnaissance | Active Scanning: Scanning IP Blocks | T1595.001 | Scanning for UDP 389 across Internet-exposed or DMZ-reachable IP ranges to identify active domain controllers before sending the exploit packet |
| Reconnaissance | Gather Victim Network Information: Network Topology | T1590.004 | Sending a benign CLDAP ping to collect DNS domain name length — the prerequisite check before committing the overflow packet |
| Initial Access | Exploit Public-Facing Application | T1190 | Direct exploitation of the CLDAP DC locator handler in netlogon.dll on an
Internet-accessible or DMZ-reachable domain controller |
| Execution | Exploitation for Client Execution | T1203 | Triggering code execution via the stack buffer overflow — attacker-controlled execution in LSASS context if RCE is achieved beyond the DoS stage |
| Persistence | Create Account: Domain Account | T1136.002 | Post-RCE creation of new privileged domain accounts (Domain Admin, Enterprise Admin) for persistent access that survives reboots and credential resets |
| Persistence | Scheduled Task / Job | T1053 | Scheduled tasks or WMI subscriptions installed on DC systems post-exploitation for persistent code execution |
| Privilege Escalation | Exploitation for Privilege Escalation | T1068 | The buffer overflow itself — escalating from network-adjacent unauthenticated attacker to SYSTEM-level code execution inside LSASS on the domain controller |
| Defense Evasion | Rogue Domain Controller (DCShadow) | T1207 | Registering a rogue DC to inject unauthorized changes into Active Directory replication stream, bypassing normal AD audit logging |
| Credential Access | OS Credential Dumping: DCSync | T1003.006 | Using LSASS execution context to perform DCSync and extract all domain credential hashes including the
krbtgt secret without touching individual endpoint machines
|
| Credential Access | OS Credential Dumping: LSASS Memory | T1003.001 | Direct access to LSASS memory from within the same process context — extracts every password hash and Kerberos ticket active on that DC at the time of exploitation |
| Lateral Movement | Use Alternate Authentication Material: Pass the Ticket | T1550.003 | Forging Golden Tickets using the stolen krbtgt hash — tickets valid for 10+ years by
default, surviving domain-wide password resets, enabling forest-wide lateral movement |
| Lateral Movement | Exploitation of Remote Services | T1210 | Using Golden Ticket or extracted credentials to move laterally from the compromised DC into other systems across domain trusts and subsidiary environments |
| Impact | Network Denial of Service | T1498 | The primary weaponized outcome today — crashing LSASS causes a ~60-second domain-wide authentication outage; repeatable on demand with zero credentials |
| Impact | Data Encrypted for Impact | T1486 | Ransomware deployment via Group Policy Object modification — GPO gives the attacker a single-operation push mechanism across every domain-joined machine simultaneously |
ATT&CK Navigator Coverage — DoS Path vs. Full RCE Path
| Path | Tactics Covered | Techniques | Reliability |
|---|---|---|---|
| DoS path (confirmed today) | Reconnaissance → Initial Access → Impact | T1595.001, T1590.004, T1190, T1498 | High — public PoC, in-the-wild confirmed |
| Full RCE path (theoretical) | Reconnaissance → Initial Access → Execution → Persistence → Privilege Escalation → Defense Evasion → Credential Access → Lateral Movement → Impact | All 14 techniques above | Low — GS cookie barrier; not yet seen at scale |
Log Sources: What You Need Enabled
Detection coverage across this attack chain requires log sources that are not enabled by default on Windows Server. Verify these are active on every domain controller before relying on any of the SIEM queries below.
| Log Source | Key Events | Enabled by Default? | Enables Detection Of |
|---|---|---|---|
| Windows Application Event Log | Event ID 1000 (LSASS crash) | Yes | Primary exploit trigger — LSASS crash with netlogon.DLL faulting module,
exception 0xc0000409 |
| Windows System Event Log | Event IDs 1074, 6006, 6008 (reboot/shutdown) | Yes | Unexpected DC reboots; correlate with Application log crash events |
| Windows Security Event Log | Event IDs 4624, 4662, 4720, 4728, 4732, 4768, 4769, 4771, 4776 | Partial — advanced audit policy required for 4662, 4728 | DCSync replication rights abuse, privileged account creation, Kerberos anomalies, NTLM failures post-crash |
| Sysmon (Event IDs 1, 3, 10) | EID 1 (Process Creation), EID 3 (Network Connection), EID 10 (Process Access) | No — requires Sysmon deployment | LSASS child process spawning (post-RCE), outbound connections from LSASS, process injection into LSASS memory |
| Netlogon Debug Log | All CLDAP request/response details | No — requires nltest /dbflag:0x2080ffff |
Oversized Username attributes in CLDAP pings; NtVer value anomalies; attacker reconnaissance activity |
| Network IDS/IPS (Suricata / Zeek) | UDP 389 payload inspection | No — requires sensor deployment on DC network segments | Exploit packet detection (oversized User attribute, NtVer = 0x02000000); pre-crash network indicators |
| RPC Audit Logs | Netlogon RPC endpoint access | No — requires RPC filtering configuration on DCs | Unauthorized Netlogon RPC connections from non-domain-member hosts |
| DNS / AD Replication Logs | New replication partner registrations | Partial | DCShadow attack — rogue DC registration in AD Sites and Services |
SIEM Queries: Full Coverage Across Platforms
Splunk
# ── QUERY 1: LSASS crash from netlogon.DLL overflow ────────────────────── index=wineventlog source="WinEventLog:Application" EventID=1000 Process_Name="lsass.exe" Module_Name="netlogon.DLL" Exception_Code="0xc0000409" | eval risk="CRITICAL - CVE-2026-41089 candidate" | table _time, host, Process_Name, Module_Name, Exception_Code, risk # ── QUERY 2: Unexpected DC reboot (no prior maintenance window event) ──── index=wineventlog source="WinEventLog:System" (EventID=1074 OR EventID=6008) | eval reboot_type=if(EventID=6008,"Unexpected shutdown","Admin/patch reboot") | table _time, host, EventID, reboot_type, Message # ── QUERY 3: LSASS child process (post-RCE signal) ─────────────────────── index=sysmon EventCode=1 ParentImage="*\\lsass.exe" | eval risk="CRITICAL - Abnormal LSASS child process" | table _time, host, Image, ParentImage, CommandLine, User, risk # ── QUERY 4: Outbound network from LSASS (post-RCE signal) ────────────── index=sysmon EventCode=3 Image="*\\lsass.exe" NOT dest_ip IN ("127.0.0.1","::1") | eval risk="CRITICAL - LSASS outbound connection" | table _time, host, Image, dest_ip, dest_port, risk # ── QUERY 5: DCSync — DS-Replication-Get-Changes-All abuse ────────────── index=wineventlog source="WinEventLog:Security" EventID=4662 Object_Type="*domainDNS*" Access_Mask="0x100" NOT SubjectUserName IN ("*$","MSOL_*","AADConnect*") | eval risk="HIGH - Possible DCSync / credential harvest" | table _time, host, SubjectUserName, Object_Name, Access_Mask, risk # ── QUERY 6: Privileged group change outside business hours ────────────── index=wineventlog source="WinEventLog:Security" EventID IN (4728, 4732, 4756) | eval hour=strftime(_time,"%H") | where hour < 8 OR hour > 18 | eval risk="HIGH - Off-hours privileged group modification" | table _time, host, SubjectUserName, MemberName, GroupName, risk # ── QUERY 7: Domain-wide 60s auth failure spike (DoS pattern) ─────────── index=wineventlog source="WinEventLog:Security" EventID IN (4771, 4776) | timechart span=10s count AS auth_failures by host | where auth_failures > 50
Elastic / KQL
# ── LSASS crash with netlogon faulting module ───────────────────────────── event.code:1000 AND process.name:lsass.exe AND winlog.event_data.ModuleName:*netlogon* AND winlog.event_data.ExceptionCode:0xc0000409 # ── LSASS child process spawned ────────────────────────────────────────── event.code:1 AND process.parent.name:lsass.exe AND NOT process.name:(csrss.exe OR wininit.exe OR services.exe) # ── Outbound connection from LSASS ─────────────────────────────────────── event.code:3 AND process.name:lsass.exe AND NOT destination.ip:(127.0.0.1 OR "::1" OR "0:0:0:0:0:0:0:1") # ── DCSync replication rights access ───────────────────────────────────── event.code:4662 AND winlog.event_data.ObjectType:*domainDNS* AND winlog.event_data.AccessMask:0x100 AND NOT winlog.event_data.SubjectUserName:(*$ OR MSOL_*) # ── Unexpected DC reboot ────────────────────────────────────────────────── event.code:(1074 OR 6008) AND winlog.channel:System
Microsoft Sentinel (KQL)
// ── LSASS crash with netlogon.DLL faulting module ──────────────────────── SecurityEvent | where EventID == 1000 | where CommandLine has "lsass.exe" and CommandLine has "netlogon.DLL" and CommandLine has "0xc0000409" | project TimeGenerated, Computer, CommandLine | extend Risk = "CRITICAL - CVE-2026-41089 candidate" // ── DCSync: DS-Replication-Get-Changes-All from non-DC account ─────────── SecurityEvent | where EventID == 4662 | where ObjectType contains "domainDNS" | where AccessMask == "0x100" | where SubjectUserName !endswith "$" | where SubjectUserName !startswith "MSOL_" | project TimeGenerated, Computer, SubjectUserName, ObjectName | extend Risk = "HIGH - DCSync / krbtgt harvest candidate" // ── Off-hours privileged group modification ─────────────────────────────── SecurityEvent | where EventID in (4728, 4732, 4756) | where hourofday(TimeGenerated) !between (8 .. 18) | project TimeGenerated, Computer, SubjectUserName, MemberName, TargetUserName | extend Risk = "HIGH - Off-hours privileged group change" // ── Auth failure spike (60s window DoS detection) ──────────────────────── SecurityEvent | where EventID in (4771, 4776) | summarize FailureCount = count() by bin(TimeGenerated, 10s), Computer | where FailureCount > 50 | extend Risk = "MEDIUM - Possible DC authentication outage" // ── Kerberos ticket anomaly: TGS without preceding TGT on same host ────── let tgt_requests = SecurityEvent | where EventID == 4768 | project TGT_Time=TimeGenerated, TGT_Host=Computer, TGT_User=TargetUserName; let tgs_requests = SecurityEvent | where EventID == 4769 | project TGS_Time=TimeGenerated, TGS_Host=Computer, TGS_User=TargetUserName; tgs_requests | join kind=leftanti tgt_requests on $left.TGS_User == $right.TGT_User | where TGS_Time > ago(1h) | extend Risk = "HIGH - TGS without TGT - possible Golden Ticket use"
Domain Controller Hardening: Prioritized Checklist
The following controls address CVE-2026-41089 directly and harden DCs against the full class of pre-authentication Netlogon attacks — not just this CVE. Controls are organized by implementation priority.
wmic qfe get HotFixID | findstr KB5089549 and SHA-256 hash check on
netlogon.dll. A forest with one unpatched DC is still a fully exploitable forest.
lsass.exe), Event ID 3
(outbound connections from lsass.exe), and Event ID 10 (process access to
lsass.exe). These are the only reliable detection signals for post-RCE activity in LSASS
context. Windows Application Event Log alone is insufficient.
Computer Configuration → Administrative Templates → System → Device Guard.
OpenProcess calls.
Enable via registry on Server 2022+:
HKLM\SYSTEM\CurrentControlSet\Control\Lsa → RunAsPPL = 2.
Combined with Credential Guard, this significantly raises the bar for any post-exploitation credential
extraction attempt against LSASS.
netsh rpc filter to restrict which callers can invoke Netlogon RPC methods. These
controls add operational complexity but ensure only authenticated, domain-member hosts can exercise
Netlogon at all.
Chaining Risk: Two-Stage Attack Model
Full RCE from CVE-2026-41089 alone remains difficult. In practice, the more dangerous scenario is a chained attack where the DoS capability serves as an operational tool enabling a separate compromise vector.
| Chain Stage | CVE-2026-41089 Role | Secondary Vector | Net Outcome |
|---|---|---|---|
| Cover + distraction | Crash primary DC, create 60s auth blackout | Credential stuffing, token replay, or lateral movement during blackout window — blamed on "infrastructure issues" | Parallel attack succeeds without triggering auth-anomaly detections |
| Failover targeting | Crash primary DC to force failover to secondary | Target secondary DC if it is unpatched, less monitored, or hosts weaker EDR coverage | Exploit the weaker node that comes online under load |
| NTLM fallback abuse | Repeatedly crash Kerberos-serving DC to force NTLM fallback | NTLM relay attack against services that fall back to NTLM when Kerberos fails | Credential capture via NTLM relay without touching the DC directly |
| Ransomware staging | DoS used for extortion leverage or GPO deployment window | Ransomware deployed via GPO if DC access is obtained through a separate vector | Organization-wide encryption in a single GPO push |
SecPod Coverage
| Capability | CVE-2026-41089 Coverage |
|---|---|
| Vulnerability Detection | OVAL-based checks for all affected Windows Server versions; build number and KB presence
validation; netlogon.dll version and hash verification |
| Patch Assessment | Saner platform identifies unpatched domain controllers across the environment and flags KB5089549 absence as critical-priority remediation |
| Remediation Guidance | Patch deployment automation for supported Windows Server versions via Saner; EoL system migration advisory workflow |
This concludes the CVE-2026-41089 four-part research series. The patch is available. Exploitation is confirmed and ongoing. Every domain controller running a vulnerable build with UDP 389 reachable is one packet away from a domain-wide authentication outage — from anyone, with no credentials, no prior access, and no warning.
Parts 1–3 cover the vulnerability mechanics, PoC analysis, and patch/IOC/detection guidance respectively.
