Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-41089 — Pre-auth PoC for CVE-2026-41089 Netlogon CLDAP stack overflow via UDP/389, triggering LSASS crash/DC reboot. Includes exploit script, root-cause analysis, detection, and mitigation guidance. | Kitploit
Tools/GitHubGitHub/jelasin/cve-2026-41089
Vulnerability AnalysisExploitationNetwork SecurityPenetration TestingRed TeamingBinary Exploitation
GitHubjelasin/cve-2026-41089

CVE-2026-41089

Pre-auth PoC for CVE-2026-41089 Netlogon CLDAP stack overflow via UDP/389, triggering LSASS crash/DC reboot. Includes exploit script, root-cause analysis, detection, and mitigation guidance.

View Repository
13 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2026-41089

root@kitploit:~
 ██████╗██╗   ██╗███████╗    ██╗  ██╗ ██╗ ██████╗  ██████╗
██╔════╝██║   ██║██╔════╝    ██║  ██║███║██╔═████╗██╔═████╗
██║     ██║   ██║█████╗      ███████║╚██║██║██╔██║██║██╔██║
██║     ╚██╗ ██╔╝██╔══╝      ██╔══██║ ██║████╔╝██║████╔╝██║
╚██████╗ ╚████╔╝ ███████╗    ██║  ██║ ██║╚██████╔╝╚██████╔╝
 ╚═════╝  ╚═══╝  ╚══════╝    ╚═╝  ╚═╝ ╚═╝ ╚═════╝  ╚═════╝

Windows Netlogon Remote Code Execution via CLDAP Stack Buffer Overflow

CVSS CWE Python License


One crafted UDP packet to port 389 overflows a 528-byte stack buffer inside LSASS on any unpatched Windows Domain Controller. LSASS crashes. The DC reboots in about 60 seconds. No creds needed.

Attack VectorUDP 389 (CLDAP), pre-auth, zero credentials
ImpactLSASS crash, DC reboot, potential RCE
CWECWE-121 (Stack-based Buffer Overflow)
CVSS VectorAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
PublishedMay 12, 2026 by Microsoft

Quick Start

root@kitploit:~
python3 poc.py 10.0.50.21 corp.local

The PoC sends a normal ping, then an overflow ping with a 130-char username, then checks if the DC survived. About 10 seconds total.

Affected Systems

Windows Server versions acting as Domain Controllers:

Server VersionFixed In
2012 / 2012 R2ESU-only patches
201610.0.14393.9140
201910.0.17763.8755
202210.0.20348.5074
2022 23H210.0.25398.2330
202510.0.26100.32772

Root Cause

NlGetLocalPingResponse allocates a 528-byte stack buffer and hands it to BuildSamLogonResponse. That function calls NetpLogonPutUnicodeString to write server name, domain name, GUIDs, and the attacker-controlled username into the buffer.

The bug: NetpLogonPutUnicodeString gets a max length in bytes but reads it as a WCHAR count. Every string written through this path takes up twice the expected space. The "User" field in the CLDAP filter (up to 130 wchars, 260 bytes on the wire) pushes the combined write past the 528-byte boundary.

root@kitploit:~
I_NetLogonLdapLookupEx
  -> NlGetLocalPingResponse           // 528-byte stack buffer
    -> LogonRequestHandler
      -> BuildSamLogonResponse
        -> NetpLogonPutUnicodeString   // byte/WCHAR size confusion

Usage

root@kitploit:~
python3 poc.py <target_ip> <domain_name> [options]
FlagDescriptionDefault
-lUsername length in characters130
-tUDP recv timeout (seconds)5
-dDelay between overflow and liveness check (seconds)3
root@kitploit:~
# Connectivity test (short username, no overflow)
python3 poc.py 10.0.50.21 corp.local

# Default overflow attempt
python3 poc.py 10.0.50.21 corp.local -l 130

# Larger payload, longer timeout for slow networks
python3 poc.py 10.0.50.21 corp.local -l 200 -t 10

Python 3.8+. No third-party packages.

How It Works

  1. Phase 1. Send a normal CLDAP ping with username "testuser" to confirm the DC responds on UDP 389.
  2. Phase 2. Send the same packet but with a 130+ char username of "A"s. The long username overflows the 528-byte stack buffer. If LSASS crashes, the recv call times out.
  3. Phase 3. Wait the configured delay. Send a normal ping. No response means LSASS went down.

The overflow causes a DoS (LSASS crash, DC reboot). Stack corruption could enable RCE, but this PoC stays at DoS.

Detection

Network. Look for CLDAP search requests with a "User" filter attribute longer than 20-30 characters. Normal DC locator pings use short service account names.

Host. Watch for LSASS crashes tied to netlogon.dll (Event ID 1000). Turn on Netlogon debug logging:

root@kitploit:~
nltest /dbflag:0x2080ffff

Mitigation

  • Install the May 2026 Microsoft security update
  • Restrict UDP 389 inbound to trusted management subnets
  • Legacy Server versions out of ESU: 0patch ships micropatches (one-instruction fix: mov edx, 0x40 halves the max username length)

References

  • Microsoft Security Update Guide
  • NVD - CVE-2026-41089
  • 0patch Analysis and Micropatch
  • Aretiq AI Reverse Engineering
  • RFC 4511 - LDAP
  • MS-ADTS - CLDAP DC Locator

Legal. This code exists for authorized security research and education. Test only against systems you own or have written permission to test. Unauthorized access to computer systems violates the CFAA and equivalent laws in most jurisdictions.

MIT License

Download Tool