The TCS office ID-card panel โ a story you already know
You work at the TCS Bengaluru office. Every morning when Sneha swipes her ID card on the entry panel, a silent conversation happens. The panel asks the central security system: "is this Sneha, is she still on payroll, what floors can she enter?" The central system answers in milliseconds. Sneha never sees the conversation. It just works โ 50,000 times a day, across every door.
Now imagine someone walks up to the panel itself, jams a thin metal pin into a specific slot, and the panel responds by handing them the master key to every door in the building. They did not pretend to be Sneha. They did not steal her card. They just exploited the panel's own firmware. That is CVE-2026-41089. The panel is your domain controller. The silent conversation is Netlogon. The master key is full SYSTEM on every machine your AD touches.
Why this matters โ in 10 seconds and in a paycheck
If you are sitting in an interview next week, this is the question. "A CVE dropped this month rated 9.8 against Windows DCs. Tell me what it does, how you would detect it, and what you would patch first." Get the answer wrong and the panel moves on. Get it right and you have separated yourself from every candidate who memorised buzzwords without learning the protocol underneath.
Why does the security industry care so much? Because compromising a domain controller is compromising the domain itself. A DC holds the NTDS.dit credential database, the Kerberos signing key (krbtgt), and the trust relationships with every member server and workstation. One DC down = every server, every desktop, every laptop, every cloud-joined identity, every Exchange mailbox โ all yours.
When ZeroLogon (CVE-2020-1472) was published, public exploit code dropped within 48 hours and organisations that delayed patching for a quarterly maintenance window were hit by Conti, Ryuk, and several Indian-targeted ransomware crews. CVE-2026-41089 had functional exploit code circulating within hours of disclosure on 12 May 2026. The window between disclosure and weaponisation is no longer "weeks." It is one workday.
What Netlogon actually is โ the core concept
Netlogon is the Windows Remote Procedure Call (RPC) service that handles three quiet jobs:
- User logon authentication โ when Rahul logs into his TCS laptop, his workstation does not talk to AD with his password. It hands the password to its Netlogon client, which runs an encrypted challenge-response over the MS-NRPC protocol against a DC.
- Machine-account password rotation โ every domain-joined PC has a machine account whose password rotates every 30 days. Netlogon is what rotates it.
- DC-to-DC replication trust โ when two DCs need to verify each other before replicating Active Directory data, they shake hands over Netlogon's secure channel.
Critically, the Netlogon service runs inside lsass.exe on every DC, and lsass.exe runs as NT AUTHORITY\SYSTEM. That is the privilege the bug hands to the attacker. Not Administrator. SYSTEM. On the DC.
Every domain-joined device talks to a DC over MS-NRPC. The bug lives inside the Netlogon component on the DC โ the same component that answers every authentication request. That is what makes the attack surface enormous.
Sneha is an L1 SOC analyst. Her CISO walks past her desk on 13 May 2026 and asks: "are our DCs running Netlogon?" The trick question โ every DC has Netlogon running. There is no "off." It's how the AD service exists. The right answer is "yes, on every DC by design โ that is exactly why CVE-2026-41089 is rated 9.8."
How CVE-2026-41089 actually fires
The bug is a stack-based buffer overflow in Netlogon's message-handling code. Netlogon writes attacker-controlled bytes into a fixed-size stack buffer without checking the length. Because the buffer sits on the stack, the overflow can overwrite the function's saved return address. The attacker chooses what that overwritten return address points to โ typically into a small payload they embedded earlier in the same packet, or into a ROP chain made of existing Netlogon code gadgets. Either way, execution lands wherever the attacker chose, running as SYSTEM, inside the Netlogon service.
What is unusual here is the pre-authentication property. The attacker does not need a domain user account. They do not need to be on the AD-joined LAN. They just need TCP/UDP reachability to the DC's RPC endpoint mapper on port 135 and the dynamic high port Netlogon negotiates afterwards. In a flat enterprise LAN โ and most Indian enterprise networks are flatter than the architects admit โ that means any compromised workstation can pivot to DC SYSTEM in one packet.
Steps 1-3 happen pre-authentication. By step 4 the attacker owns the DC itself. By step 5 they own the domain โ and "rebuilding AD from scratch" is now on the table.
Priya manages a 14-DC forest. She reads the advisory at 11 PM on 12 May, panics, and DMs her manager. The right next move is not "patch all 14 right now." It is "isolate the RPC endpoint mapper from untrusted segments, then patch in waves starting with internet-adjacent DCs." Order matters. Panic patching is how you break replication.
How CVE-2026-41089 is different from ZeroLogon (and why both still matter)
If you have done CISSP prep, you remember ZeroLogon (CVE-2020-1472). Both bugs end in "attacker owns the domain via Netlogon," but the root cause and the detection signal are very different. An interviewer will absolutely ask you to distinguish them.
Same protocol, three different bug classes. CVE-2026-41089 is the most dangerous because, like ZeroLogon, it requires no authentication โ but unlike ZeroLogon, the patch order also matters (more in the next section).
Karthik did Zerologon remediation in 2020. He asks his lead: "is this just ZeroLogon again?" The honest answer is no โ ZeroLogon was a crypto bug fixable by enforcing secure-channel signing. CVE-2026-41089 is a memory-corruption bug; the only fix is the binary patch. There is no "policy workaround" this time.
Hands-on โ is your DC vulnerable?
Three checks. Run them on each DC, in order. All commands run in an elevated PowerShell.
Check 1 โ is the May 2026 patch installed?
Get-HotFix -Id KB5058411, KB5058385 |
Select-Object HotFixID, InstalledOn, InstalledBy
HotFixID InstalledOn InstalledBy -------- ----------- ----------- KB5058411 5/13/2026 NT AUTHORITY\SYSTEM KB5058385 5/13/2026 NT AUTHORITY\SYSTEM
Empty output = the DC is unpatched. Move to step 2 immediately.
Check 2 โ what build are we on?
Get-ComputerInfo -Property OsName, OsVersion, OsBuildNumber, OsHardwareAbstractionLayer # Server 2022 fixed build: 20348.3517 or higher # Server 2025 fixed build: 26100.3915 or higher
Check 3 โ is Netlogon's RPC endpoint reachable from places it shouldn't be?
Test-NetConnection -ComputerName 10.42.50.10 -Port 135 # If TcpTestSucceeded = True from a user VLAN, your DC's RPC interface # is exposed to every workstation. That is the attack surface.
Patch deployment โ the order that does not break replication
- Snapshot every DC (VM checkpoint or backup) before any reboot. If anything goes sideways with the secure channel, you want a rollback point.
- Patch the PDC Emulator FSMO holder LAST, not first. The PDC Emulator is the time source and password-change authority โ if it goes down mid-patch, every other DC's clock skews and Kerberos breaks.
- Patch in this order: replica DCs in the largest site first โ replica DCs in branch sites โ finally the PDC Emulator. One DC at a time per site. Wait for replication to converge (
repadmin /showrepl) between each. - After each DC reboots, verify the secure channel still works:
Test-ComputerSecureChannel -Verboseon a member server in the same site. Expected:True. - Re-test reachability +
Get-HotFixfrom step 1.
Rahul runs Get-HotFix on his 14 DCs and finds 6 of them still on the April 2026 baseline because the WSUS rule was set to "auto-approve Important only." May's Netlogon patch was tagged Critical and skipped. Fix the WSUS classification first, then push. Lesson โ WSUS rules drift, audit them every Patch Tuesday.
Detection โ catching exploitation in Splunk + Microsoft Sentinel
Patching is half the job. Until every DC is patched (and even after), you want a detection that fires on the pre-exploit pattern: malformed MS-NRPC packets + unexpected Netlogon service crashes. Enable enhanced Netlogon logging first.
nltest /dbflag:0x2080FFFF # Logs to %WINDIR%\debug\netlogon.log # Look for Event IDs 5805, 5827, 5828, 5829, 5830, 5831
Splunk SPL โ burst of malformed NRPC from a single source
index=wineventlog source="WinEventLog:System"
(EventCode=5805 OR EventCode=5827 OR EventCode=5828
OR EventCode=5829 OR EventCode=5830 OR EventCode=5831)
| bin _time span=5m
| stats count by _time, host, src_ip
| where count > 10
| sort - count
Microsoft Sentinel KQL โ Netlogon service crash followed by lsass access
let netlogonCrash = Event
| where EventLog == "System"
| where Source == "Service Control Manager"
| where EventID == 7034
| where RenderedDescription contains "Netlogon"
| project crashTime = TimeGenerated, Computer;
let lsassRead = DeviceProcessEvents
| where ProcessCommandLine has_any ("lsass", "comsvcs.dll", "MiniDump")
| project readTime = TimeGenerated, Computer, AccountName, ProcessCommandLine;
netlogonCrash
| join kind=inner lsassRead on Computer
| where readTime between (crashTime .. (crashTime + 10m))
| project crashTime, Computer, AccountName, ProcessCommandLine
- "We have a firewall, we're fine." โ North-south firewalls do not stop east-west pivoting. The attacker only needs one compromised workstation on your LAN. Segmenting DCs into their own VLAN with strict ACLs to port 135 + RPC range is the real control.
- Patching PDC Emulator first. โ Breaks Kerberos for the duration of the reboot. Always last.
- Disabling Netlogon as a "workaround." โ Disables every authentication in the domain. Do not do this. There is no policy mitigation; only the patch.
- Trusting Event 5805 alone. โ It also fires on benign clock-skew issues. Correlate with a Netlogon service crash (Event 7034 from Service Control Manager) for high-fidelity detection.
- Forgetting the read-only DCs (RODCs). โ They also run Netlogon. They are also vulnerable. Audit your
Get-ADDomainController -Filter *output, not just your "main" DCs.
- Add the May 2026 cumulative update KBs to your WSUS auto-approve rule for Critical + Security Updates so future Netlogon-class bugs land automatically on DCs at the next maintenance window.
- Run
Set-ADObject -Identity (Get-ADDomain).DistinguishedName -Replace @{"msDS-Behavior-Version"=7}to confirm the domain functional level is current โ older levels sometimes block newer patches from applying cleanly. - For SOC: pre-write the Sentinel/Splunk rules above today even if you are patched. Detection-as-code beats panic-after-the-fact every time.
Aditya patches DC03 and sees Event ID 5719 ("This computer was not able to set up a secure session") flood the log for 6 minutes. Trainee instinct says rollback. Senior move: wait 10 minutes for the secure channel to rebuild, then run Test-ComputerSecureChannel -Repair from a member server. Patching transient errors are normal; permanent ones aren't.
๐ Quick reference โ CVE-2026-41089 cheat sheet
| Field | Value |
|---|---|
| CVE | CVE-2026-41089 |
| CVSS v3.1 | 9.8 Critical (AV:N / AC:L / PR:N / UI:N / S:U / C:H / I:H / A:H) |
| Bug class | Stack-based buffer overflow in MS-NRPC message handler |
| Auth required | None โ pre-authentication RCE |
| Affected | Windows Server 2012, 2012 R2, 2016, 2019, 2022, 2022 23H2, 2025 (DC role + RPC interface exposed) |
| Patches | KB5058411 (Server 2022), KB5058385 (Server 2025); equivalent KBs for older releases |
| Detection events | System log Event IDs 5805, 5827-5831; Service Control Manager Event 7034 (Netlogon crash) |
| Patch order | Replica DCs first โ branch DCs โ PDC Emulator LAST |
| No workaround | Only the binary patch fixes it. No policy/registry mitigation works. |
Glossary
- Active Directory (AD) โ Microsoft's directory service that holds user accounts, computer accounts, and group policies for a Windows network.
- Domain Controller (DC) โ a server running AD Domain Services that authenticates users and computers in the domain.
- Netlogon โ the Windows RPC service that runs all authentication conversations between a workstation and its DC. Runs as SYSTEM inside
lsass.exe. - MS-NRPC โ Microsoft Netlogon Remote Protocol. The wire format Netlogon uses.
- RPC โ Remote Procedure Call. A way for one Windows machine to invoke a function on another.
- NTDS.dit โ the file on a DC that stores every domain user's password hash. The crown jewels.
- krbtgt โ the special account whose password signs every Kerberos ticket. Theft = Golden Ticket attack = unlimited persistence.
- PDC Emulator โ the FSMO role-holder DC that is the master time source and password-change authority for the domain.
- RODC โ Read-Only Domain Controller. Used in branch sites. Still runs Netlogon, still vulnerable.
- CVSS โ Common Vulnerability Scoring System. 9.0-10.0 = Critical.
Sources used in this lesson
- NVD โ CVE-2026-41089 official detail
- Microsoft Learn โ MS-NRPC Netlogon Remote Protocol spec
- The Hacker News โ May 2026 patches including Netlogon RCE
- Tenable โ May 2026 Patch Tuesday analysis
- CrowdStrike โ May 2026 Patch Tuesday telemetry
- Rapid7 โ Patch Tuesday May 2026 deep dive
- The Hacker Recipes โ ZeroLogon (CVE-2020-1472) historical context
- CERT/CC VU#490028 โ Netlogon AES-CFB8 cryptographic issue
๐ Check your understanding โ 10 scenario questions
Bloom-tiered mix: 1 recall, 3 apply, 4 analyze, 2 evaluate. Pick one answer per question. You need 70% (7 of 10) to mark this lesson complete on your profile.
What's next?
Now that you can defend a DC, learn how to attack one (ethically) โ CISSP Domain 3 covers the offensive side of credential-store theft. Drill the practice MCQs on exam.techclick.in to lock the concepts.