
CVE-2026-41089 PoC — Netlogon CLDAP スタックバッファオーバーフロー (CVSS 9.8 緊急)
██████╗██╗ ██╗███████╗ ██╗ ██╗ ██╗ ██████╗ ██████╗
██╔════╝██║ ██║██╔════╝ ██║ ██║███║██╔═████╗██╔═████╗
██║ ██║ ██║█████╗ ███████║╚██║██║██╔██║██║██╔██║
██║ ╚██╗ ██╔╝██╔══╝ ██╔══██║ ██║████╔╝██║████╔╝██║
╚██████╗ ╚████╔╝ ███████╗ ██║ ██║ ██║╚██████╔╝╚██████╔╝
╚═════╝ ╚═══╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝
Windows Netlogon の CLDAP スタックバッファオーバーフローによるリモートコード実行
細工された 1 つの UDP パケットをポート 389 に送信することで、パッチが適用されていない Windows ドメインコントローラ上の LSASS 内の 528 バイトのスタックバッファがオーバーフローします。プロセスはクラッシュし、DC は約 60 秒で再起動します。認証は不要です。
| 攻撃ベクトル | UDP 389 (CLDAP)、事前認証なし、認証情報不要 |
| 影響 | LSASS クラッシュ、DC 再起動、潜在的な RCE |
| CWE | CWE-121 (スタックベースのバッファオーバーフロー) |
| CVSS ベクトル | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 公開日 | 2026 年 5 月 12 日 Microsoft より公開 |
python3 poc.py 10.0.50.21 corp.local
3 つのフェーズ: DC が応答していることを確認する通常の ping、130 文字のユーザー名によるオーバーフロー ping、死活確認。約 10 秒で完了します。
ドメインコントローラとして動作しているすべての Windows Server バージョン:
NlGetLocalPingResponse は 528 バイトのスタックバッファを割り当て、それを BuildSamLogonResponse に渡します。この関数は NetpLogonPutUnicodeString を呼び出して、サーバー名、ドメイン名、GUID、および攻撃者が制御するユーザー名をバッファに書き込みます。
バグの内容: NetpLogonPutUnicodeString は最大長をバイト単位で受け取りますが、それを WCHAR カウントとして扱います。このパスを通じて書き込まれるすべての文字列は、期待されるサイズの 2 倍の領域を占有します。CLDAP フィルタ内の "User" フィールド (最大 130 wchar、ワイヤ上では 260 バイト) により、結合された書き込みが 528 バイトの境界を超えます。
I_NetLogonLdapLookupEx
-> NlGetLocalPingResponse // 528 バイトのスタックバッファ
-> LogonRequestHandler
-> BuildSamLogonResponse
-> NetpLogonPutUnicodeString // バイト/WCHAR サイズの混同
python3 poc.py <target_ip> <domain_name> [options]
| フラグ | 説明 | デフォルト |
|---|---|---|
-l | ユーザー名の文字数 | 130 |
-t | UDP recv タイムアウト (秒) |
# 接続テスト (短いユーザー名、オーバーフローなし)
python3 poc.py 10.0.50.21 corp.local
# デフォルトのオーバーフロー試行
python3 poc.py 10.0.50.21 corp.local -l 130
# 大規模ペイロード、低速ネットワーク向けの長いタイムアウト
python3 poc.py 10.0.50.21 corp.local -l 200 -t 10
Python 3.8+ が必要です。サードパーティパッケージは不要です。
このオーバーフローはサービス拒否 (LSASS クラッシュ、DC 再起動) を引き起こします。理論上はスタック破壊による RCE が可能ですが、この PoC はコード実行を試みません。
ネットワーク. "User" フィルタ属性が 20~30 文字を超える検索リクエストがないか、CLDAP トラフィックをスキャンします。通常の DC ロケーター ping はサービスアカウント名 (短い文字列) を使用します。
ホスト. netlogon.dll に関連する LSASS クラッシュ (イベント ID 1000) を監視します。Netlogon デバッグログを有効にします:
nltest /dbflag:0x2080ffff
mov edx, 0x40 で最大ユーザー名長を半分に)法的通知. このコードは、許可されたセキュリティ研究および教育のために存在します。自分が所有するシステム、またはテストする書面による許可を得たシステムに対してのみテストしてください。コンピュータシステムへの不正アクセスは、CFAA およびほとんどの法域における同等の法律に違反します。
| サーバーバージョン | 修正バージョン |
|---|
| 2012 / 2012 R2 | ESU 限定パッチ |
| 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 |
| 5 |
-d | オーバーフローと死活確認の間の遅延 (秒) | 3 |