
يكتشف ثغرة CVE-2025-55182 (تنفيذ التعليمات البرمجية عن بُعد) في مكونات خادم React من خلال فحص ملفات القفل الخاصة بـ npm/pnpm/yarn، وصور Docker، وقوائم مكونات البرامج (SBOMs)، وعناوين URL المباشرة. يتضمن إصلاحًا تلقائيًا، وإخراجًا بصيغة SARIF، وتكاملًا مع أنظمة CI/CD.
ماسح أمان لـ CVE-2025-55182 - ثغرة حرجة (CVSS 10.0) غير مصادق عليها لتنفيذ تعليمات برمجية عن بُعد في مكونات خادم React.
⚠️ إخلاء مسؤولية
هذه أداة مسح أمني، وليست أداة استغلال. صُممت لمساعدة المطورين وفرق الأمان في تحديد التبعيات الضعيفة في مشاريعهم.
هذا مشروع مفتوح المصدر يحركه المجتمع مقدم "كما هو" دون أي ضمان، صريح أو ضمني. لا يتحمل المؤلفون والمساهمون أي مسؤولية عن الأضرار أو الحوادث الأمنية الناتجة عن استخدام هذه الأداة.
استخدمها على مسؤوليتك الخاصة. تحقق دائمًا من النتائج يدويًا واتبع سياسات الأمان في مؤسستك. إذا وجدت أي مشكلات أو أخطاء أو لديك اقتراحات، فيُرجى المساهمة مرة أخرى للمساعدة في تحسين المشروع للجميع.
🤝 المساهمون مطلوبون
هذا المشروع يبحث بنشاط عن مختبِرين ومساهمين! سواء كنت ترغب في الإبلاغ عن أخطاء، أو اقتراح ميزات، أو تحسين التوثيق، أو تقديم كود - كل المساهمات مرحب بها. اطلع على دليل المساهمة لبدء المساهمة.
يوجد هذا المشروع لمساعدة المجتمع في الاستجابة لـ CVE-2025-55182. نعترف بالشكر والتقدير لـ:
أسرع طريقة للتحقق مما إذا كان مشروعك معرضًا للخطر:```bash npx react2shell-guard .
هذا كل شيء! سيقوم هذا بفحص دليلك الحالي وعرض النتائج فورًا.
### 2. فحص مشروع محدد```bash
npx react2shell-guard /path/to/your/project
هل وجدت ثغرات؟ أصلحها تلقائيًا:```bash
npx react2shell-guard fix --dry-run
npx react2shell-guard fix
npx react2shell-guard fix --install
### 4. مسح عناوين URL الحية
تحقق مما إذا كان التطبيق المنشور معرضًا للخطر:```bash
npx react2shell-guard scan-url https://your-app.com
تأكد من أن الإصلاح الذي نشرته يعمل:```bash npx react2shell-guard verify-patch https://your-app.com
### 6. فحص صور الحاويات
تحقق مما إذا كانت صور Docker الخاصة بك تحتوي على حزم ضعيفة:```bash
npx react2shell-guard scan-image myapp:latest
قم بإنشاء PR على GitHub تلقائيًا لإصلاح الثغرات الأمنية:```bash npx react2shell-guard create-pr --dry-run # Preview npx react2shell-guard create-pr # Create PR
---
## ما هو CVE-2025-55182؟
في 29 نوفمبر 2025، اكتشف باحث الأمن Lachlan Davidson وكشف بمسؤولية عن ثغرة أمنية حرجة في React Server Components. العيب موجود في كيفية فك تشفير React للحمولات المرسلة إلى نقاط نهاية React Server Function، مما يسمح للمهاجمين غير الموثقين بتحقيق تنفيذ تعليمات برمجية عن بُعد على الخوادم المتأثرة دون أي تفاعل من المستخدم.
تم تصنيف CVE-2025-55182 بـ CVSS 10.0 (حرج) ويؤثر على React Server Components (RSC) والأطر التي تستخدم بروتوكول RSC "Flight".
**الحزم المتأثرة:**
- `react-server-dom-webpack` 19.0.0, 19.1.0-19.1.1, 19.2.0
- `react-server-dom-parcel` (same versions)
- `react-server-dom-turbopack` (same versions)
- `next` 15.0.0-15.0.4, 15.1.0-15.1.8, 15.2.0-15.2.5, 15.3.0-15.3.5, 15.4.0-15.4.7, 15.5.0-15.5.6, 16.0.0-16.0.6
**مزيد من المعلومات:**
- [إعلان أمان React](https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components)
- [بحث Wiz](https://www.wiz.io/blog/critical-vulnerability-in-react-cve-2025-55182)
---
## التثبيت (اختياري)
للاستخدام المتكرر، قم بالتثبيت عالميًا:```bash
npm install -g react2shell-guard
ثم استخدم بدون npx:```bash
react2shell-guard .
---
## دليل الاستخدام
### المسح الأساسي```bash
# Scan current directory
react2shell-guard .
# Scan specific directory
react2shell-guard /path/to/project
# Scan and ignore certain paths
react2shell-guard . --ignore-path "examples/**" "test/**"
react2shell-guard .
react2shell-guard . --json
react2shell-guard . --sarif
react2shell-guard . --html report.html
### خيارات واجهة سطر الأوامر
| الخيار | الوصف |
|--------|-------------|
| `--json` | إخراج النتائج بتنسيق JSON |
| `--sarif` | إخراج النتائج بتنسيق SARIF 2.1.0 |
| `--html <file>` | إنشاء تقرير HTML مستقل |
| `--no-exit-on-vuln` | لا تخرج برمز 1 عند العثور على ثغرات |
| `--ignore-path <patterns>` | المسارات المراد تجاهلها (مثل `examples/**`) |
| `--debug` | تمكين إخراج التصحيح |
### رموز الخروج
| الرمز | المعنى |
|------|---------|
| `0` | لم يتم العثور على ثغرات |
| `1` | تم اكتشاف ثغرات |
| `2+` | خطأ فادح |
## فحص عناوين URL الحية
فحص نقاط النهاية الحية للكشف عما إذا كانت معرضة للخطر:```bash
# Scan a single URL
react2shell-guard scan-url https://example.com
# Batch scan from a file (one URL per line)
react2shell-guard scan-url urls.txt --list
# With options
react2shell-guard scan-url https://example.com --timeout 5000 --json
يستخدم الماسح البصمة السلبية لاكتشاف نقاط نهاية مكونات خادم React الضعيفة دون استغلال الثغرة:
طلب الاستكشاف: يرسل طلب POST مخصص يحاكي استدعاء إجراء خادم RSC بحمولة صغيرة:
multipart/form-data مع بنية بيانات شبيهة بـ RSCNext-Action لبدء معالجة إجراء الخادمتحليل الاستجابة: يحلل استجابة HTTP بحثًا عن تواقيع الثغرة:
^[0-9]+:E{ - تنسيق خطأ بروتوكول RSC Flight"digest":"...RSC - ملخص RSC في استجابات الخطأReactServerComponentsError - أسماء فئات خطأ Reacttext/x-component.*error - نوع محتوى خطأ المكونغير مدمر: هذه آلية كشف بحتة - لا تنفذ أي حمولة ضارة أو تستغل الثغرة. يستخدم الاستكشاف بيانات حميدة تؤدي إلى استجابات خطأ على الخوادم الضعيفة ولكنها لا تسبب أي ضرر.
ملاحظة: الكشف الإيجابي يعني أن الخادم يعمل بإصدار ضعيف وأعاد توقيع خطأ خاص بـ RSC. لا يعني أنه تم استغلال الخادم.
| الخيار | الوصف |
|---|---|
--list | معالجة الهدف كملف يحتوي على عناوين URL |
--threads <n> | عدد الخيوط المتزامنة (الافتراضي: 10) |
--timeout <ms> | مهلة الطلب بالميلي ثانية (الافتراضي: 10000) |
--json | إخراج النتائج بصيغة JSON |
--skip-ssl-verify | تخطي التحقق من شهادة SSL |
--verbose | عرض جميع النتائج بما في ذلك المضيفات غير الضعيفة |
التحقق مما إذا كان الهدف قد تم تصحيحه ضد الثغرة:```bash
react2shell-guard verify-patch https://example.com
react2shell-guard verify-patch https://example.com --json
### كيف يعمل التحقق من التصحيح
يقوم التحقق من التصحيح بإجراء **عدة عمليات مسح متتالية** (الافتراضي: 3) مع تأخيرات قصيرة بينها لضمان الكشف الدقيق:
1. **عدة اختبارات**: يشغل نفس فحص البصمة السلبية 3 مرات مع تأخيرات 500 مللي ثانية
2. **تسجيل الثقة**:
- **ثقة عالية**: عمليتا مسح ناجحتان أو أكثر بنتائج متسقة
- **ثقة متوسطة**: عملية مسح ناجحة واحدة بنتيجة قاطعة
- **ثقة منخفضة**: فشلت جميع عمليات المسح أو كانت النتائج غير حاسمة
3. **تصنيف النتيجة**:
- **تم التصحيح**: لم يتم اكتشاف أي توقيعات ثغرات عبر جميع عمليات المسح الناجحة
- **قابل للاختراق**: تم اكتشاف توقيع ثغرة في عملية مسح واحدة أو أكثر
- **غير حاسم**: نتائج مختلطة أو فشلت جميع عمليات المسح
يقلل هذا النهج متعدد المسح من النتائج الإيجابية الخاطئة الناتجة عن مشكلات الشبكة المؤقتة ويوفر ثقة أعلى في حالة التصحيح.
### خيارات التحقق