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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-55182 — أبحاث أمنية متقدمة حول CVE-2025-55182 (React2Shell). تتضمن إطار استغلال مع 6 سيناريوهات تأثير وظيفية (من RCE إلى تسريب الأسرار)، وشلًا تفاعليًا عكسيًا، ومختبرًا متكاملًا. عمل معروض يبرز تحليلًا عميقًا لتلوث النموذج الأولي وإلغاء التسلسل غير الآمن في مكونات خادم React. | Kitploit
أدوات/GitHubGitHub/devianntsec/cve-2025-55182
أطر الاستغلالتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبما بعد الاستغلالاختبار الاختراقالأوراق والأبحاثالتعلم والتعليمأداة الوصول عن بعد

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
تطوير الحمولات
مختبرات وتدريب عملي
GitHubdevianntsec/cve-2025-55182

CVE-2025-55182

أبحاث أمنية متقدمة حول CVE-2025-55182 (React2Shell). تتضمن إطار استغلال مع 6 سيناريوهات تأثير وظيفية (من RCE إلى تسريب الأسرار)، وشلًا تفاعليًا عكسيًا، ومختبرًا متكاملًا. عمل معروض يبرز تحليلًا عميقًا لتلوث النموذج الأولي وإلغاء التسلسل غير الآمن في مكونات خادم React.

عرض المستودع
1منذ 4 أشهرلم تتم المراجعة بعد

CVE-2025-55182 — React2Shell: استغلال متقدم وبحث رسالة الماجستير

Platform Language License: MIT Research CVSS

إلغاء تسلسل البيانات غير الموثوقة + تلوث النموذج الأولي في مكونات خادم React
تنفيذ تعليمات برمجية عن بُعد دون مصادقة عبر Server Actions في Next.js
الإصدارات المتأثرة: React 19.0.0 - 19.2.0 · التصحيح: React 19.0.1 / 19.1.2 / 19.2.1 (3 ديسمبر 2025)


عرض توضيحي للاستغلال المتقدم - أوامر RCE الأساسية، قشرة تفاعلية، ونواقل هجوم متعددة ضد تطبيق Next.js ضعيف

الوصف

يحتوي هذا المستودع على بحث رسالة الماجستير الخاص بي حول CVE-2025-55182، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) حرجة (CVSS v3.1: 10.0) في مكونات خادم React (React Server Components).

يعود أصل الثغرة إلى آلية إلغاء تسلسل غير آمنة في بروتوكول React Flight. عند معالجة Server Actions، تقوم Next.js بإلغاء تسلسل الأحمال متعددة الأجزاء (multipart) الواردة دون تحقق مناسب. يمكن للمهاجم إنشاء حمولة خبيثة تلوث سلسلة النموذج الأولي (prototype chain) وتحقن JavaScript عشوائية، تُنفَّذ على الخادم عبر مُنشئ Function (ومن ثم عبر child_process.execSync()).

ملاحظة بخصوص CVE-2025-66478: أصدرت Vercel CVE موازيًا لتتبع الأثر الخاص بـ Next.js لهذه الثغرة نفسها. ونظرًا لأن Next.js تدمج React بطريقة موَرّدة (vendored)، فإن العديد من أدوات فحص التبعيات لا تكتشفها تلقائيًا كإصدار ضعيف. وقد رفضت قاعدة البيانات الوطنية الأمريكية للثغرات (NVD) رسميًا اعتبار CVE-2025-66478 نسخة مكررة من CVE-2025-55182، رغم استمرار الإشارة إليها في النشرة الأمنية الصادرة عن Vercel.

ثغرات لاحقة: كشف فريق React لاحقًا عن مشكلتين إضافيتين موجودتين في إصدارات التصحيح الأولية (19.0.1, 19.1.2, 19.2.1): CVE-2025-55184 (حجب الخدمة، CVSS 7.5) وCVE-2025-55183 (كشف الكود المصدري، CVSS 5.3). يجب على المستخدمين الترقية إلى 19.0.2 أو 19.1.3 أو 19.2.2 لمعالجة الثغرات الثلاث جميعًا.

مساهمتي


بنية المستودع

root@kitploit:~
CVE-2025-55182/
├── README.md                        # This file
├── LICENSE                          # MIT License
│
├── exploit/
│   ├── exploit-explanation.md       # Exploit usage documentation
│   └── react2shell.py               # Main exploit — 4 attack modules + interactive shell
│
├── vulnerable-app/                  # Vulnerable Next.js application
│   ├── README.md                    # Original vulnapp credits
│   ├── package.json                 # React 19.0.0 (vulnerable)
│   ├── app/                         # Application source code
│   ├── curl_id.sh                   # Original exploit script (by zack0x01)
│   └── scripts/
│       └── restore.sh               # Restoration script (my contribution)
│
└── docs/
    ├── screenshots/                 # Exploitation demonstrations
    │   ├── 01-app-initial.png
    │   ├── 02-rce-basic.png
    │   ├── 03-interactive-shell.png
    │   ├── 04-no-payload.png
    │   ├── 05-delete-result.png
    │   ├── 06-deface.png
    │   ├── 07-shutdown-servers.png
    │   ├── 08-restore-from-script.png
    │   └── 09-restore-from-interactive-shell.png
    │
    └── analysis/
        ├── 01-root-cause.md         # Vulnerability root cause analysis
        ├── 02-payload-breakdown.md  # Payload structure and execution flow
        └── 03-timeline.md           # CVE timeline

بدء الاستخدام السريع

المتطلبات الأساسية

  • Node.js 18+ وnpm
  • Python 3.9+
  • تطبيق Next.js ضعيف (مرفق في vulnerable-app/)
  • يُنصح باستخدام جهاز افتراضي معزول للاختبار

الخطوة 1 — تشغيل التطبيق الضعيف

root@kitploit:~
cd vulnerable-app
npm install --legacy-peer-deps
npm run dev
# App available at http://localhost:3000

الخطوة 2 — تشغيل الاستغلال

root@kitploit:~
cd ../exploit

# Check if target is vulnerable
python3 react2shell.py -u http://localhost:3000 --check

# Execute single command
python3 react2shell.py -u http://localhost:3000 -c "whoami"

# Interactive shell mode
python3 react2shell.py -u http://localhost:3000 -i

وحدات الهجوم


نظرة تقنية عامة

السبب الجذري للثغرة

تستخدم مكونات خادم React آلية تسلسل/إلغاء تسلسل مخصصة (بروتوكول "Flight") لإرسال بيانات المكونات من الخادم إلى العميل. وعند معالجة إجراءات الخادم (Server Actions)، يقوم الخادم بإلغاء تسلسل الأحمال الواردة دون تحقق مناسب.

الخلل الأساسي هو الثقة السلوكية: يتحقق مُلغِي التسلسل من typeof obj.then === 'function' لتحديد كائنات Promise، دون التحقق من أن الخاصية تنتمي مباشرةً إلى الكائن. وهذا يسمح للمهاجم بتسميم Object.prototype.then، مما يجعل كل كائن عادي يظهر وكأنه كائن thenable.

يمكن للمهاجم إنشاء حمولة خبيثة تعمل على:

  1. تلويث سلسلة النموذج الأولي باستخدام __proto__:then
  2. إعادة توجيه الحل إلى مُنشئ Function عبر $1:constructor:constructor
  3. تنفيذ JavaScript عشوائية عبر new Function(_prefix)
  4. تشغيل أوامر النظام عبر process.mainModule.require('child_process').execSync()
  5. استخراج المخرجات عبر ترويسة استجابة HTTP X-Action-Redirect
root@kitploit:~
User-mode (unauthenticated)
  │
  ├─ POST / (Next.js Server Action endpoint)
  │    ├─ Headers: Next-Action: x
  │    └─ Multipart body with malicious JSON
  │
  └─ React Flight deserializer processes payload
       └─ Prototype pollution via __proto__:then
            └─ Function constructor reached via $1:constructor:constructor
                 └─ new Function(_prefix) executes attacker's JavaScript
                      └─ execSync() runs system command
                           └─ Output embedded in NEXT_REDIRECT error
                                └─ Next.js converts to X-Action-Redirect header

توضيح النطاق

تؤثر الثغرة على أي تطبيق Next.js يستخدم App Router مع مكونات خادم React — وهو التكوين الافتراضي منذ Next.js 14. ليست هناك حاجة لتعريف Server Actions بشكل صريح؛ فمجرد وجود حزم RSC المتأثرة كافٍ.

لماذا هي مهمة؟

تسمح هذه الثغرة لمهاجم غير مصادَق بما يلي:

  • تنفيذ أوامر عشوائية على الخادم
  • سرقة متغيرات البيئة وبيانات الاعتماد
  • تعديل أو حذف بيانات التطبيق
  • استخدام الخادم كنقطة انطلاق لهجمات إضافية

سلسلة الهجوم

root@kitploit:~
1. [ANY]    Send crafted multipart POST to any Server Action endpoint
2. [SERVER] React deserializer processes malicious JSON
3. [SERVER] Prototype pollution poisons Object.prototype.then
4. [SERVER] Plain object treated as thenable; Function constructor reached
5. [SERVER] new Function(_prefix) executes attacker's arbitrary JavaScript
6. [SERVER] execSync() runs system command; output captured
7. [SERVER] Output embedded in NEXT_REDIRECT error digest
8. [SERVER] Next.js returns X-Action-Redirect header with URL-encoded output
9. [ATTACKER] Extract and URL-decode command result from header

الاختبار التجريبي

أُجريت جميع الاختبارات على جهاز افتراضي معزول (VirtualBox) يعمل بنظام Kali Linux 2026.1 مع Next.js 15.0.0 وReact 19.0.0، دون أي تعرض للشبكة.

الحتمية: على عكس الاستغلالات الاحتمالية، مثل رش الكومة (heap spray)، فإن CVE-2025-55182 حتمية تمامًا — أي طلب HTTP POST مُنسَّق بشكل صحيح يُنتج RCE باحتمال 1 على أي نظام غير مُصحَّح يعمل بـ React 19.0.0–19.2.0 مع تفعيل مكونات خادم React.


التوثيق التقني

المستندالوصف
تحليل السبب الجذريخلل إلغاء التسلسل وتلوث النموذج الأولي في React Flight
تفصيل الحمولة

السياق الأكاديمي

هذا البحث جزء من رسالة الماجستير في الأمن السيبراني (UCAM — Campus Internacional de Ciberseguridad)، ويحلل ثغرات N-Day عبر بيئات متعددة.

تمثل هذه الثغرة ناقل أطر عمل JavaScript الحديثة ضمن الرسالة، وتُظهر:

  • ثغرات إلغاء التسلسل في مكونات خادم React
  • تلوث النموذج الأولي كبدائية (primitive) لتحقيق RCE
  • استغلال Server Actions في Next.js
  • تقنيات ما بعد الاستغلال في بيئات Node.js
  • منهجيات استعادة آمنة للمختبر

الكلمات المفتاحية: RCE · Prototype Pollution · Deserialization · React · Next.js · Server Actions · CVE-2025-55182


المؤلف

Annais Molina (devianntsec) — باحثة أمنية | ماجستير في الأمن السيبراني (UCAM)

GitHub LinkedIn Blog Email


شكر وتقدير

  • @zack0x01 — التطبيق الضعيف الأصلي
  • Lachlan Davidson (Carapace) — الاكتشاف الأصلي للثغرة والإفصاح المسؤول عنها
  • AssetNote — أداة الكشف react2shell-scanner
  • Moritz Sanft — أول PoC عام يعمل (بعد نحو 30 ساعة من الإفصاح)
  • maple3142 — الـ PoC العام للمُبلِّغ الأصلي (5 ديسمبر 2025)

الترخيص

رخصة MIT — انظر LICENSE


إخلاء مسؤولية قانوني

يُقدَّم هذا المستودع لأغراض تعليمية وبحوث أمنية فقط، كجزء من رسالة ماجستير أكاديمية. أُجريت جميع الاختبارات على أجهزة افتراضية معزولة دون تعرض للشبكة. استخدمه فقط على أنظمة تملكها أو لديك إذن كتابي صريح لاختبارها. الاستخدام غير المصرح به ضد الأنظمة غير قانوني وقد يؤدي إلى ملاحقة جنائية.

© 2026 Annais Molina · رسالة الماجستير في الأمن السيبراني
UCAM Universidad Católica San Antonio de Murcia · Campus Internacional de Ciberseguridad
تنزيل الأداة
الجانبالوصف
أربع وحدات هجوميةحذف المشاريع، تشويه الموقع الإلكتروني، سرقة متغيرات البيئة، إيقاف تشغيل الخوادم
قشرة تفاعليةقشرة مستمرة بأوامر خاصة وقدرات استعادة
استخراج مستقر للبياناتقراءة سطرًا بسطر لتجاوز قيود حجم ترويسات HTTP
سكربت الاستعادةاستعادة آمنة للمختبر بعد الهجمات
توثيق أكاديميالسبب الجذري، تفصيل الحمولة، والجدول الزمني للثغرة
الوحدةالأمرالوصفالأثر
حذف المشاريع--delete-projectsيحذف جميع المشاريع من لوحة التحكمتدمير البيانات
تشويه الموقع--deface "message"يستبدل الصفحة الرئيسيةتشويه
سرقة متغيرات البيئة--steal-envيسرق متغيرات البيئةاستخراج البيانات
إيقاف تشغيل الخوادم--shutdown-serversيوقف جميع الخوادمحجب الخدمة (DoS)
وحدة الهجومالنتيجةملاحظات
تنفيذ الأوامر✅ تأكيد RCEwhoami, id, uname -a تعمل بشكل موثوق
حذف المشاريع✅ تعديل لوحة التحكمحُذفت المشاريع، وحُفظت بنية React
تشويه الموقع✅ تشويه الموقع الإلكترونيعُرضت رسالة مخصصة
سرقة متغيرات البيئة✅ استخراج متغيرات البيئةحُفظت في stolen_env.txt
إيقاف تشغيل الخوادم✅ ظهور جميع الخوادم متوقفةحُدّثت الواجهة، وReact تعمل
القشرة التفاعلية✅ قشرة مستمرةأوامر خاصة متاحة
الاستعادة✅ استعادة الحالة الأصليةعبر سكربت restore.sh
تحليل سطرًا بسطر لبنية JSON الخبيثة
الجدول الزمني للثغرةالتسلسل الزمني للاكتشاف والإفصاح والتصحيح