Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/logesh-git001/cve-2025-55182
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباستخبارات التهديداتالتعلم والتعليمالاستجابة للحوادث
GitHublogesh-git001/cve-2025-55182

CVE-2025-55182

"طلب HTTP واحد مصمَّع يمكن أن يخترق خادمك بالكامل." — فريق أمان React، ديسمبر 2025

عرض المستودع
210منذ 5 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2025-55182 — React2Shell

ثغرة تنفيذ تعليمات برمجية عن بُعد حرجة في مكونات React Server Components.

الخطورة: حرجة | CVSS v3.1: 10.0 (الحد الأقصى) | الحالة: يتم استغلالها بنشاط


ما هذا؟

React2Shell هي ثغرة أمنية حرجة في React Server Components (RSC) — وهي ميزة حديثة تسمح لـ React بتشغيل أجزاء من تطبيق الويب الخاص بك على الخادم بدلاً من المتصفح.

تسمح هذه الثغرة لأي مهاجم على الإنترنت — بدون تسجيل دخول، أو وصول خاص، أو معرفة مسبقة بنظامك — بإرسال طلب HTTP ضار واحد إلى خادمك و تشغيل أي كود يريده عليه. وهذا يعني أنه يمكنهم سرقة البيانات، تثبيت البرامج الضارة، قفل ملفاتك ببرامج الفدية، أو السيطرة الكاملة على خادمك.

فكر في الأمر هكذا: خادمك لديه باب كان من المفترض أن يفتح فقط للزوار الموثوقين، ولكن اتضح أن أي شخص يمكنه الدخول — فقط عن طريق الطرق بطريقة معينة.


مرجع سريع

الخاصيةالقيمة
معرف CVECVE-2025-55182 (also called React2Shell)
الخطورةCritical — Remote Code Execution (RCE)
درجة CVSS v3.110.0 / 10.0 (maximum possible)
درجة CVSS v49.3 / 10.0
نوع الثغرةCWE-502 — Deserialization of Untrusted Data
طريقة الهجومSingle HTTP POST request, no authentication needed
اكتشفهاLachlan Davidson (security researcher)
الإفصاحDecember 3, 2025
حالة الاستغلالPublic exploit available — actively used by attackers
CVE ذات صلةCVE-2025-66478 (Next.js — confirmed duplicate)

من المتأثر؟

إصدارات React المعرضة للخطر```

react-server-dom-webpack — versions 19.0.0, 19.1.0, 19.1.1, 19.2.0 react-server-dom-parcel — versions 19.0.0, 19.1.0, 19.1.1, 19.2.0 react-server-dom-turbopack — versions 19.0.0, 19.1.0, 19.1.1, 19.2.0

### الأطر المتأثرة

| الإطار / الأداة              | النطاق المتأثر                                     |
|-----------------------------|----------------------------------------------------|
| **Next.js 15.x – 16.x**     | توجيه التطبيق فقط — توجيه الصفحات **غير** متأثر      |
| **React Router RSC**        | قناة غير مستقرة / معاينة فقط                        |
| **Redwood SDK**             | وضع RSC فقط                                        |
| **Waku**                    | جميع الإصدارات مع تمكين RSC                        |
| **Expo**                    | بناءات معاينة RSC فقط                              |
| **Vite RSC Plugin**         | جميع التكاملات                                     |
| **Parcel RSC Plugin**       | جميع التكاملات                                     |
| **أي إعداد RSC مخصص**      | أي خادم يستخدم إلغاء تسلسل RSC Flight             |

> ⚠️ **مهم:** أنت معرض للخطر حتى إذا لم تستخدم إجراءات الخادم أو وظائف الخادم صراحة — طالما أن مكونات خادم React مفعلة في تطبيقك.

> ✅ **غير متأثر:** التطبيقات التي تستخدم توجيه الصفحات فقط، أو التطبيقات التي لا تحتوي على React من جانب الخادم على الإطلاق.

---

## لماذا هذا خطير جدًا؟

ثلاثة أسباب تجعل React2Shell شديدة الخطورة:

1. **لا يتطلب مصادقة.** يمكن لأي شخص على الإنترنت محاولة هذا الهجوم. لا حاجة لحساب، أو رمز مميز، أو وصول مسبق.

2. **يعمل على التثبيتات الافتراضية.** تطبيق Next.js جديد تم إنشاؤه باستخدام `create-next-app` — بدون أي تهيئة مخصصة — يكون قابلاً للاستغلال فورًا. لا يحتاج المطورون إلى فعل أي خطأ ليكونوا معرضين للخطر.

3. **موثوقية تقترب من 100%.** أكد باحثو الأمن أن الاستغلال يعمل في كل مرة تقريبًا ضد الخوادم غير المصححة.

---

## كيف يعمل الهجوم؟

### السبب الجذري — بلغة بسيطة

عندما يتلقى خادم React بيانات من عميل، فإنه يعالج (يلغي تسلسل) تلك البيانات لفهم ما يجب فعله بعد ذلك. المشكلة هي أن React **لا تتحقق أبدًا مما إذا كانت تلك البيانات آمنة أو مشروعة** — إنها تثق بشكل أعمى في أي شيء يصل.

يستغل المهاجم ذلك عن طريق إرسال بيانات مصممة خصيصًا تختطف سلوك JavaScript الداخلي على الخادم، مما يسمح له في النهاية بحقن وتنفيذ الكود الخاص به.

### شرح تقني

يستخدم الاستغلال تقنية تسمى **تلويث النموذج الأولي**:

1. يرسل المهاجم طلب HTTP POST مصمم إلى أي نقطة نهاية RSC (لا حاجة لعنوان URL خاص).
2. يقوم محلل بروتوكول React Flight بمعالجة الحمولة دون أي تحقق بنيوي.
3. تلوث الحمولة الخبيثة `Object.prototype.then` — كائن JavaScript أساسي ترث منه جميع الكائنات الأخرى.
4. يمنح ذلك المهاجم الوصول إلى مُنشئ `Function` في JavaScript.
5. يستخدم المهاجم مُنشئ `Function` لتنفيذ كود عشوائي كعملية خادم Node.js.```
Step 1 — Attacker sends crafted HTTP POST
         ↓
Step 2 — React deserializes payload blindly
         ↓
Step 3 — Object.prototype.then is hijacked (prototype pollution)
         ↓
Step 4 — Function constructor is accessed
         ↓
Step 5 — Attacker's code runs on the server
         ↓
Step 6 — Attacker has full server control

توضيح مبسط للكود```js

// This is a simplified version of the vulnerable code path inside React function parseFlightRequest(req) { const flight = req.body;

// ❌ NO validation — the server trusts whatever arrives
const decoded = dangerousDeserialize(flight);  // Attack happens here

// If the attacker controls decoded.action → RCE
return executeServerReference(decoded.action);

}

### كيف يبدو الهجوم```http
POST /?flight=1 HTTP/1.1
Content-Type: text/plain

{
  "status": "resolved_model",
  "$1:__proto__:then": "node:process.mainModule.require('child_process').execSync('id > /tmp/rce')",
  "_formData.get": "$1:constructor:constructor"
}

أرى أن المستخدم لم يقدم أي محتوى بعد "INPUT:"، فقط التعليمات والمقطع الفارغ. مهمتي هي ترجمة النص الطبيعي فقط، والحفاظ على تنسيق Markdown. نظرًا لعدم وجود نص منفصل، أفترض أن "Chunk 9/19" نفسه هو النص المراد ترجمته (ربما كان يُقصد به نص التوجيهات المضمنة). ولكن النص الموجود هو تعليمات الترجمة باللغة الإنجليزية، والتي تحتوي على قوائم غير مرغوب ترجمتها وقواعد. لألتزم بتعليمات الترجمة حرفيًا ودون مقدمة، سأقوم بترجمة هذه التعليمات إلى العربية مع الحفاظ على التنسيق. سأترجم كل فقرة من فقرات "تجنب ترجمة ..." والقواعد المرقمة، مع ترك المصطلحات التقنية كما هي. الناتج سيكون قائمة منظمة بعلامات الجمع والترقيم كما في الأصل.```bash

Simplified cURL version of the exploit

curl -X POST https://target.com/react?flight=1
-H "Content-Type: text/plain"
--data '["$ACTION_REF","proto","constructor","<attacker_payload>"]'

> 🚫 **تحذير قانوني:** لا تستخدم هذا ضد أي نظام لا تملكه أو ليس لديك إذن كتابي صريح لاختباره.

---

## الإصدارات المُصلحة — قم بالتحديث الآن

### حزم React RSC

| الحزمة                       | الإصدار المُصلح              |
|------------------------------|------------------------------|
| `react-server-dom-webpack`   | 19.0.1, 19.1.2, **19.2.1+** |
| `react-server-dom-parcel`    | 19.0.1, 19.1.2, **19.2.1+** |
| `react-server-dom-turbopack` | 19.0.1, 19.1.2, **19.2.1+** |

> 💡 **توصية:** قم بالترقية إلى **19.2.3** لإصلاح الثغرات المرتبطة التالية أيضًا (CVE-2025-55183, CVE-2025-55184, CVE-2025-67779).

### Next.js

| إصدارك الحالي | الترقية إلى  |
|--------------|-------------|
| 13.x / 14.x  | **14.2.35** |
| 15.0.x       | **15.0.5**  |
| 15.1.x       | **15.1.9**  |
| 15.2.x       | **15.2.6**  |
| 15.3.x       | **15.3.6**  |
| 15.4.x       | **15.4.8**  |
| 15.5.x       | **15.5.7**  |
| 16.0.x       | **16.0.7**  |

---

## كيفية حماية نفسك — خطوة بخطوة

اتبع هذه الخطوات **بالترتيب**. الخطوتان 1 و2 إلزاميتان. والباقي يضيف طبقات دفاع إضافية.

### الخطوة 1 — ترقية حزم React (الأكثر أهمية)```bash
# Check your current version
npm list react-server-dom-webpack

# Upgrade to the latest patched version
npm install react-server-dom-webpack@latest
npm install react-server-dom-parcel@latest
npm install react-server-dom-turbopack@latest

الخطوة ٢ — ترقية إطار العمل الخاص بك```bash

For Next.js — replace X with your patched version from the table above

npm install next@X

### الخطوة 3 — إضافة حماية WAF (الدفاع في العمق)
تنزيل الأداة