
مختبر أبحاث أمنية لـ CVE-2025-55183 و CVE-2025-55184 في مكونات خادم React
بيئة اختبار أمان شاملة لثغرات CVE-2025-55183 (كشف الكود المصدري) و CVE-2025-55184 (حرمان الخدمة) في مكونات خادم React.
لأغراض تعليمية وبحوث أمنية فقط
يحتوي هذا المستودع على تطبيقات ضعيفة عمدًا وأدوات استغلال. اختبر فقط على أنظمة تمتلكها أو لديك إذن كتابي صريح لاختبارها. الاختبار غير المصرح به غير قانوني وغير أخلاقي.
تؤثر كلتا الثغرتين على مكونات خادم React الإصدارات 19.0.0 حتى 19.2.2، تم الإفصاح عنها في 11 ديسمبر 2025.
| الخاصية | القيمة |
|---|---|
| الخطورة | متوسطة (CVSS 5.3) |
| النوع | كشف معلومات |
| التأثير | كشف الكود المصدري للخادم |
| المصادقة | لا حاجة |
يمكن للمهاجمين إجبار وسائط إجراء الخادم (Server Action arguments) على تسريب كود مصدر خاص بالخادم من خلال استدعاء .toString() على كائنات دالة الخادم. يكشف هذا عن:
| الخاصية | القيمة |
|---|---|
| الخطورة | عالية (CVSS 7.5) |
| النوع | حرمان الخدمة |
| التأثير | انقطاع كامل للخدمة |
| المصادقة | لا حاجة |
تُنشئ حمولات مصممة خصيصًا تكرارًا لا نهائيًا للـ promise، مما يتسبب في تعليق خادم Node.js إلى أجل غير مسمى. يؤدي ذلك إلى:
| الجانب | CVE-2025-55183 | CVE-2025-55184 |
|---|---|---|
| الخطورة | متوسطة | عالية |
| النوع | كشف معلومات | حرمان الخدمة |
| التأثير | تسريب الكود المصدري | تعطل الخادم |
| الكشف | الاستجابة تحتوي على كود | انتهاء مهلة/تعليق الخادم |
| الاسترداد | فوري | يتطلب إعادة تشغيل |
الملخص: التطبيق ضعيف (React 19.0.0)، لكن الحمايات الحديثة قد تمنع التعطل الفعلي في بيئة العرض هذه.
CVE-2025-55184 هي ثغرة حقيقية وخطيرة تؤثر على React 19.0.0-19.2.2 في بيئات الإنتاج. لكن إثبات تعطل حرمان الخدمة بنجاح في عرض محلي قد يكون صعبًا للأسباب التالية:
حتى لو لم يتسبب الاستغلال في تعطل العرض، يمكنك التحقق من وجود الثغرة من خلال:
cd vulnerable-app
npm list react react-dom
# Output shows:
[email protected] ← VULNERABLE VERSION
[email protected] ← VULNERABLE VERSION
إذا رأيت 19.0.0 حتى 19.2.2، فإن التطبيق ضعيف.
cd scanner
python scan.py http://localhost:3000
يتحقق الماسح من:
git clone https://github.com/StealthMoud/react-server-cve-lab.git
cd react-server-cve-lab
# Start the app (vulnerable to both CVEs)
docker-compose up --build -d
# App available at: http://localhost:3000
cd scanner
# Install dependencies
pip install -r requirements.txt
# Scan for both vulnerabilities
python scan.py http://localhost:3000
# Scan only CVE-2025-55183
python scan.py --cve 55183 http://localhost:3000
# Scan only CVE-2025-55184
python scan.py --cve 55184 http://localhost:3000
# Scan multiple targets
python scan.py --file targets.txt
react-server-cve-lab/
├── README.md # This file
├── DOCUMENTATION.md # Complete technical documentation
├── LICENSE
├── .gitignore
├── docker-compose.yml
│
├── vulnerable-app/ # Vulnerable to BOTH CVEs
│ ├── Dockerfile
│ ├── package.json
│ ├── next.config.js
│ └── app/
│ ├── layout.js
│ ├── page.js
│ └── actions.js # Vulnerable server actions
│
├── scanner/
│ ├── requirements.txt
│ ├── scan.py # Scanner for both CVEs
│ └── README.md
│
└── exploits/
├── exploit-55183.py # PoC for CVE-2025-55183
├── exploit-55184.py # PoC for CVE-2025-55184
└── README.md
التطبيق هو تطبيق Next.js يعمل على React 19.0.0 مع إجراءات خادم (Server Actions)، وهو ضعيف لكلا الثغرتين.
# Using Docker Compose (recommended)
docker-compose up --build -d
# Check if running
curl http://localhost:3000
# View logs
docker-compose logs -f
# Stop the app
docker-compose down
cd vulnerable-app
npm install
npm run build
npm start
يكتشف الماسح الموحد كلاً من CVE-2025-55183 و CVE-2025-55184.
cd scanner
# Scan for both CVEs
python scan.py http://localhost:3000
# Scan specific CVE only
python scan.py --cve 55183 http://localhost:3000
python scan.py --cve 55184 http://localhost:3000
# Verbose output
python scan.py --verbose http://localhost:3000
# Custom timeout
python scan.py --timeout 10 http://example.com
# Scan multiple URLs from file
python scan.py --file targets.txt
# Save results to JSON
python scan.py --output results.json http://localhost:3000
# Disable SSL verification
python scan.py --no-verify https://self-signed.example.com
# Scan all CVEs with verbose output and save results
python scan.py --verbose --output scan-results.json http://localhost:3000
╔═══════════════════════════════════════════════════════════╗
║ ماسح ثغرات مكونات خادم React ║
║ CVE-2025-55183 & CVE-2025-55184 ║
╚═══════════════════════════════════════════════════════════╝
[*] اختبار http://localhost:3000
[CVE-2025-55183] كشف الكود المصدري
[!] ضعيف: تم تسريب الكود المصدري
الدوال المكشوفة: 3
طول الكود: 1247 حرفًا
يحتوي على أسرار: ✓ (تم العثور على مفاتيح API)
[CVE-2025-55184] حرمان الخدمة
[!] ضعيف: هجوم حرمان الخدمة ناجح
رمز الحالة: 404
نوع المحتوى: text/plain
تم العثور على علامات: ✓
============================================================
ملخص
============================================================
الإجمالي المختبر: 1
ضعف CVE-2025-55183: 1
ضعف CVE-2025-55184: 1
ضعف لكلتا الثغرتين: 1
غير ضعيف: 0
للحصول على تحليل تقني شامل لكلا الثغرتين:
DOCUMENTATION.md - توثيق تقني كامل يغطي:
تم إصلاح كلتا الثغرتين في نفس إصدارات التصحيح:
تحديث React إلى إصدار مصحح:
npm install [email protected] [email protected]
# or
npm install react@latest react-dom@latest
تحديث Next.js (إذا كان ذلك مناسبًا):
npm install next@latest
التحقق من الإصلاح:
npm list react react-dom next
python scanner/scan.py http://localhost:3000
| الحزمة | الإصدارات الضعيفة | الإصدارات المصححة |
|---|---|---|
| React | 19.0.0 - 19.2.2 | 19.0.3+, 19.1.4+, 19.2.3+ |
| Next.js 15.1.x | < 15.1.4 | 15.1.4+ |
| Next.js 15.0.x | < 15.0.4 | 15.0.4+ |
| Next.js 14.x | < 14.2.24 | 14.2.24+ |
# تشغيل الماسح لتأكيد الإصلاحات
cd scanner
python scan.py http://your-patched-app.com
# المخرجات المتوقعة:
# [+] CVE-2025-55183: NOT VULNERABLE
# [+] CVE-2025-55184: NOT VULNERABLE
المساهمات مرحب بها! مجالات التحسين:
لا تتردد في تقديم طلب سحب (Pull Request).
هذا المشروع مرخص بموجب ترخيص MIT - راجع ملف LICENSE للحصول على التفاصيل.
إذا وجدت هذا المستودع مفيدًا لأبحاثك الأمنية، يرجى التفكير في منحه نجمة!