
CVE-2026-41089-Checker: nicht authentifizierte, nicht destruktive Erkennung für den Netlogon-CLDAP-Stack-Pufferüberlauf (CVSS 9.8). Meldet, ob die Domäne eines Domänencontrollers lang genug ist, um einen Absturz zu verursachen, ohne den Überlauf zu senden. Die binär verifizierte Analyse, die die öffentlichen PoCs falsch gemacht haben.
LongLogon ist ein nicht authentifizierter, nicht destruktiver Vorbedingungsprüfer für CVE-2026-41089, einen Pre-Auth-Stapelpufferüberlauf im Windows Netlogon-Dienst. Ohne Anmeldeinformationen und ohne das Senden des Überlaufs gibt es an, ob der DNS-Domänenname eines Domänencontrollers lang genug ist, damit der Fehler ihn zum Absturz bringt.

Bei einem normal benannten Domänencontroller nicht. Die öffentlichen Exploit-PoCs für diese CVE (der am meisten gestirnte und die Kopien, die ihm folgten) behaupten, einen Domänencontroller zum Absturz zu bringen, indem sie einen langen Benutzernamen senden. Sie bringen einen nicht gepatchten DC in einer gewöhnlichen Domäne nicht zum Absturz, aus zwei Gründen, die durch Diffing der Vor- und Nach-Patch-netlogon.dll und Reproduktion des Absturzes in einem Labor bestätigt wurden:
0x16), was zur grenzensicheren BuildSamLogonResponseEx führt. Die verwundbare Legacy-BuildSamLogonResponse wird nur mit gelöschtem Bit erreicht. LongLogon verwendet 0x02.User-Feld ist binär auf 130 Wide-Zeichen begrenzt, weit unter dem 528-Byte-Puffer. Die Bytes, die das Schreiben auf das Stack-Cookie tragen, sind die eigenen langen DNS-Namen des Servers, die keine Payload-Länge ändert.Der beliebte Exploit scheitert also in einer gewöhnlichen Domäne, und ein recv-Timeout (das ein einzelnes verlorenes UDP-Paket auf einem gesunden DC verursacht) wird fälschlicherweise als Absturz interpretiert. LongLogon ist keiner dieser Exploits: Es ist die korrigierte, binär-verifizierte Analyse, die als nicht destruktiver Prüfer ausgeliefert wird, der niemals den Überlauf sendet. Die im Labor bestätigte Absturzschwelle und der vollständige Mechanismus sind unten.
Ein stapelbasierter Pufferüberlauf (CWE-121, CVSS 9.8) im Netlogon-DC-Locator-Pfad NlGetLocalPingResponse → BuildSamLogonResponse → NetpLogonPutUnicodeString. Bei der Beantwortung eines CLDAP- oder MAILSLOT-Pings serialisiert der DC seinen eigenen Gesamtstruktur-, Domänen- und Hostnamen sowie eine kleine, vom Angreifer kontrollierte Zeichenfolge in einen festen 528-Byte-Stapelpuffer (ushort local_258[264]), wobei das Stack-Cookie unmittelbar danach liegt. Wenn die eigenen DNS-Namen des Servers lang genug sind, erreicht das kumulative Schreiben das Pufferende, der abschließende L'\0'-Terminator überschreibt das Cookie, __report_gsfailure wird ausgelöst und lsass.exe stirbt mit STATUS_STACK_BUFFER_OVERRUN (0xc0000409). Der Domänencontroller startet neu. Nicht authentifiziert, ein UDP-Paket.
Wo Zerologon (CVE-2020-1472) eine komplett Null-Challenge missbrauchte, missbraucht LongLogon einen pathologisch langen Domänennamen.
longlogon.py ist nicht destruktiv. Es sendet harmlose CLDAP-Pings mit einem minimalen User-Feld, misst die Antwort des Legacy-Builders und gibt an, ob die Überlaufvorbedingung gilt: ob die Domäne dieses DC lang genug ist, dass ein ungepatchter DC abstürzen würde.
Es tut nicht:
Zu wissen, welche Ihrer DCs tatsächlich gepatcht sind, erfordert eine berechtigte (Admin-)Versionsprüfung über die gesamte Flotte. Das ist die Art von Sache, die ADscan in einem Engagement automatisiert (siehe unten).
Die einzigen vom Angreifer kontrollierten Bytes, die den Puffer erreichen, stammen aus dem CLDAP-User-Filter, begrenzt auf 130 Wide-Zeichen, weit unter dem 528-Byte-Puffer allein. Die Bytes, die den Cursor auf das Cookie tragen, sind die eigenen Namen des Servers, die der Angreifer nicht kontrolliert. Ein standardmäßig benannter DC (corp.local) kann nicht zum Absturz gebracht werden. Deshalb bewertet Microsoft ihn mit "Exploitation Less Likely". In einem Labor betrug die minimale DNS-Domänenlänge, um Windows Server 2016 (mit einem 7-stelligen Hostnamen) zum Absturz zu bringen, 98 Zeichen.
Mit uv, keine Einrichtung. Abhängigkeiten werden inline deklariert (PEP 723), sodass rich automatisch in einer flüchtigen Umgebung installiert wird:
uv run longlogon.py <dc-ip> <dc-dns-domain>
Oder mit pip:
pip install rich
python3 longlogon.py <dc-ip> <dc-dns-domain>
Die DNS-Domäne muss mit dem übereinstimmen, was der DC bedient. Sie ist nicht geheim: rootDSE, Reverse-DNS und CLDAP selbst geben sie alle preis. Die Ausgabe ist ein Vorbedingungsurteil plus die feldweise Pufferfüllungsmathematik.
NtVer-Routing ist wichtig. Die verwundbare Legacy-BuildSamLogonResponse wird nur erreicht, wenn (NtVer & 0xc) == 0 und (NtVer & 0x2) != 0. Öffentliche Exploit-Versuche, die NtVer=0x16 oder 0x06 senden, setzen Bit 2 (0x4) und treffen auf die grenzensichere BuildSamLogonResponseEx, sodass sie den Fehler nie auslösen. LongLogon verwendet 0x02.
Ungepatchte Windows Server-Domänencontroller, 2012 R2 bis 2025. Erstmals gepatchte Builds:
Nur für autorisierte Sicherheitsforschung und defensive Validierung. Dieses Repository enthält den nicht destruktiven Vorbedingungsprüfer, keinen bewaffneten Crasher, für eine aktiv ausgenutzte, wurmfähige CVE. Patchen Sie Ihre Domänencontroller.
Forschung von Yeray Martín Domínguez · ADscan · CVE-2026-41089 · Netlogon · Active Directory · Domänencontroller · Stapelpufferüberlauf · CLDAP · nicht authentifiziert · Pre-Auth · Proof of Concept
| Windows Server | Erster gepatchter Build |
|---|
| 2016 | 10.0.14393.9140 |
| 2019 | 10.0.17763.8755 |
| 2022 | 10.0.20348.5074 |
| 2022 23H2 | 10.0.25398.2330 |
| 2025 | 10.0.26100.32772 |