
"طلب HTTP واحد مصمَّع يمكن أن يخترق خادمك بالكامل." — فريق أمان React، ديسمبر 2025
الخطورة: حرجة | CVSS v3.1: 10.0 (الحد الأقصى) | الحالة: يتم استغلالها بنشاط
React2Shell هي ثغرة أمنية حرجة في React Server Components (RSC) — وهي ميزة حديثة تسمح لـ React بتشغيل أجزاء من تطبيق الويب الخاص بك على الخادم بدلاً من المتصفح.
تسمح هذه الثغرة لأي مهاجم على الإنترنت — بدون تسجيل دخول، أو وصول خاص، أو معرفة مسبقة بنظامك — بإرسال طلب HTTP ضار واحد إلى خادمك و تشغيل أي كود يريده عليه. وهذا يعني أنه يمكنهم سرقة البيانات، تثبيت البرامج الضارة، قفل ملفاتك ببرامج الفدية، أو السيطرة الكاملة على خادمك.
فكر في الأمر هكذا: خادمك لديه باب كان من المفترض أن يفتح فقط للزوار الموثوقين، ولكن اتضح أن أي شخص يمكنه الدخول — فقط عن طريق الطرق بطريقة معينة.
| الخاصية | القيمة |
|---|---|
| معرف CVE | CVE-2025-55182 (also called React2Shell) |
| الخطورة | Critical — Remote Code Execution (RCE) |
| درجة CVSS v3.1 | 10.0 / 10.0 (maximum possible) |
| درجة CVSS v4 | 9.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-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
// 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
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
npm install next@X
### الخطوة 3 — إضافة حماية WAF (الدفاع في العمق)
| مزود السحابة | الإجراء المطلوب |
|-----------------------|---------------------------------------------------------------------------------------------|
| **AWS WAF** | تمكين `AWSManagedRulesKnownBadInputsRuleSet` v1.24+ — تتضمن قواعد React2Shell |
| **جدار حماية AWS للشبكة** | تمكين قواعد إدارة التهديدات النشطة (يتم تحديثها تلقائيًا عبر MadPot) |
| **Google Cloud Armor** | نشر مجموعة قواعد React2Shell من وحدة التحكم |
| **Cloudflare** | قاعدة WAF `react2shell-cve-2025-55182` — يتم تطبيقها تلقائيًا للخطط Pro+ |
> ⚠️ **قواعد WAF وحدها غير كافية.** لا يمكنها حظر كل متغير من الحمولات. تصحيح الحزم هو الحل الوحيد الكامل.
### الخطوة 4 — إذا لم تتمكن من التصحيح فورًا
- قم **بتعطيل نقاط نهاية RSC Flight** مؤقتًا على خادمك.
- هذا يقلل من سطح الهجوم لديك إلى أن تتمكن من تطبيق التصحيح.
### الخطوة 5 — تحقق مما إذا كنت قد تعرضت للهجوم بالفعل
- **دقق في سجلات الخادم** للبحث عن طلبات POST مشبوهة إلى نقاط نهاية RSC/flight قبل تاريخ التصحيح.
- ابحث عن اتصالات صادرة غير معتادة، حسابات مستخدمين جديدة، أو عمليات غير متوقعة.
### الخطوة 6 — إجراءات افتراض الاختراق
- **قم بتغيير جميع الأسرار** — مفاتيح API، بيانات اعتماد قاعدة البيانات، رموز الجلسات، متغيرات البيئة.
- تعامل مع أي خادم كان يعمل بإصدار ضعيف على أنه مخترق محتملًا.
---
## نشاط الهجوم في العالم الحقيقي
### النطاق (حتى أبريل 2026)
| المقياس | الرقم |
|----------------------------|-------------------------------------|
| إجمالي جلسات الهجوم | **أكثر من 8.1 مليون** (GreyNoise) |
| حجم الهجوم اليومي | **300,000 – 400,000** طلب/يوم |
| ذروة الحجم اليومي | **أكثر من 430,000** (أواخر ديسمبر 2025) |
| عناوين IP المهاجمة الفريدة | **8,163** عبر 101 دولة |
| وقت أول إصابة | **دقيقتان** بعد تعرض الخادم |
تمثل AWS وحدها أكثر من ثلث البنية التحتية للمهاجمين المرصودة — مما يعني أن المهاجمين يعملون في الغالب من خوادم مستضافة في السحابة لشن هذه الهجمات على نطاق واسع.
### من يهاجم؟
تم تأكيد عدة مجموعات مميزة من جهات التهديد تستغلال هذه الثغرة:
**مرتبط بالصين (برعاية الدولة)**
- **Earth Lamia** (يتم تعقبها أيضًا باسم UNC5454 من قِبل Google) — مرتبطة بوزارة أمن الدولة الصينية (MSS)
- **Jackpot Panda** — تم تحديدها من قبل فرق استخبارات التهديد في كل من AWS و Google
- كما يقومون باستغلال متزامن لثغرات أخرى حديثة في نفس الوقت
**مرتبط بإيران**
- جهات فاعلة مرتبطة بإيران رصدتها Google GTIG في ديسمبر 2025
**كوريا الشمالية (DPRK)** ⚠️ *جديد — يناير 2026*
- مؤشرات مرتبطة بحملة **Contagious Interview** (عملية طويلة الأمد لـ DPRK تستهدف مطوري البرمجيات)
- يقومون بنشر **EtherRAT** — باب خلفي جديد يستخدم **بنية تحتية للتحكم والقيادة تعتمد على البلوك تشين**، مما يجعل من الصعب جدًا حظره باستخدام حظر IP/نطاق قياسي
**مجرمون إلكترونيون / بدافع مالي**
- تم تأكيد استخدام مشغلي برامج الفدية لـ React2Shell كمدخل أولي ⚠️ *جديد — ديسمبر 2026*
- تم توثيق حالة واحدة على الأقل حيث تم نشر برنامج الفدية **في أقل من دقيقة واحدة** بعد الاستغلال الأولي
- تم نشر تعدين العملات الرقمية (XMRig) على نطاق واسع عبر حملات انتهازية
### البرامج الضارة المرصودة في البيئة
| البرنامج الضار / الأداة | وظيفتها | من يستخدمها |
|-------------------------------------|--------------------------|---------------------------------------|
| SNOWLIGHT | تحميل المزيد من البرامج الضارة | Earth Lamia (الصين) |
| MINOCAT | إنشاء أنفاق مخفية | Earth Lamia (الصين) |
| HISONIC | باب خلفي للثبات | Earth Lamia (الصين) |
| COMPOOD | البقاء بعد إعادة التشغيل | Earth Lamia (الصين) |
| **EtherRAT** ⚠️ *جديد* | باب خلفي بـ C2 عبر البلوك تشين | DPRK / حملة Contagious Interview |
| XMRig | تعدين العملات الرقمية | مجموعات متعددة |
| Cobalt Strike | إطار تحكم عن بعد | حملتا "emerald" و "nuts" |
| Sliver / Nezha | أطر C2 | حملة "emerald" |
| Fast Reverse Proxy (FRP) | إنشاء أنفاق الشبكة | مجموعات متعددة |
| Secret-Hunter | سرقة بيانات الاعتماد | حملة "nuts" |
| بوت نت Mirai / Rondo | DDoS / الثبات | جهات انتهازية |
| MeshAgent (أداة RMM) | إدارة عن بعد | مجموعات متعددة (للثبات) |
| **شِل ويب Next.js في الذاكرة** ⚠️ *جديد* | ثبات خفي | جهات متعددة (تم تأكيدها من GTIG) |
> 💡 **ما هو شِل ويب في الذاكرة؟** هو باب خلفي يعمل بالكامل في ذاكرة الخادم — دون ترك أي ملفات على القرص، مما يصعّب اكتشافه باستخدام مضادات الفيروسات القياسية أو أدوات فحص الملفات.
> 💡 **ما هو C2 القائم على البلوك تشين؟** بدلاً من الاتصال بخوادم المهاجمين عبر عناوين IP أو نطاقات عادية (يمكن حظرها)، يتلقى EtherRAT أوامره من معاملات البلوك تشين — وهو نظام لامركزي لا يمكن إسقاطه أو حظره بسهولة.
---
## أدوات الكشف
### Microsoft Defender for Cloud
هناك قالبان مخصصان متاحان في معرض مستكشف الأمان:
- *حاويات مكشوفة على الإنترنت تعمل بصور حاويات معرضة لـ React2Shell — CVE-2025-55182*
- *أجهزة افتراضية مكشوفة على الإنترنت معرضة لـ React2Shell — CVE-2025-55182*
يقوم Microsoft Security Exposure Management أيضًا بتعيين مسارات هجوم React2Shell تلقائيًا عبر البنية التحتية السحابية الخاصة بك.
### GreyNoise
قالب حظر جاهز للاستخدام: **محاولة تنفيذ تعليمات برمجية عن بعد (RCE) عبر إلغاء التسلسل غير الآمن لمكونات خادم React — CVE-2025-55182**
مجموعات بيانات بصمة المهاجم الكاملة (ASN, JA4T, JA4H) متاحة للعموم:```
github.com/GreyNoise-Intelligence/gn-research-supplemental-data/tree/main/2026-01-06-react2shell
استخدم Runtime Vulnerability Analytics — قم بالتصفية حسب CVE-2025-55182 لتحديد حزم React أو Next.js الضعيفة في بيئتك.
بعد الكشف، تم تداول حوالي 145 أداة استغلال مزيفة وغير وظيفية عبر الإنترنت — تم إنشاء العديد منها بواسطة الذكاء الاصطناعي. مخاطر استخدام أدوات غير موثقة:
استخدم فقط الماسحات الضوئية من مصادر موثوقة ومُعتمدة من المجتمع.
Nov 29, 2025 Lachlan Davidson privately reports the vulnerability to Meta / React team
Dec 03, 2025 Patched packages published to npm CVE-2025-55182 publicly disclosed Vercel deploys runtime-level protections (not just WAF) Cloudflare WAF rules activated Mass automated scanning begins within hours of disclosure
Dec 04, 2025 First working public exploit released by Moritz Sanft Default create-next-app confirmed exploitable with no changes
Dec 05, 2025 Discoverer Lachlan Davidson releases his own PoC (~30 hours post-disclosure) Active exploitation observed in Datadog and Rapid7 honeypots Darktrace honeypot infected in 2 minutes after deployment
Dec 05–08 "emerald" and "nuts" malware campaigns deploy Cobalt Strike, Sliver, Nezha, FRP, Secret-Hunter; Mirai and Rondo botnets also active 362 unique attacker IPs observed; 152 with identifiable payloads
Dec 08, 2025 Rapid7 confirms exploitation using the public PoC
Dec 11, 2025 Follow-on CVEs disclosed: CVE-2025-55183 and CVE-2025-55184
Dec 12, 2025 Google GTIG identifies China-nexus threat clusters Iran-nexus activity also flagged
Dec 15, 2025 Microsoft confirms hundreds of compromised machines Coin miners and backdoors (SNOWLIGHT, HISONIC) deployed at scale Microsoft Defender for Cloud templates published
Dec 17, 2025 ⚠️ [NEW] Ransomware operators confirmed using React2Shell for initial access — malware deployed in under one minute post-exploitation (Reported by BleepingComputer, based on S-RM and Microsoft Defender)
Dec 29, 2025 AWS formally attributes activity to Earth Lamia and Jackpot Panda AWS Network Firewall Active Threat Defense rules updated
Jan 06, 2026 GreyNoise publishes full attacker fingerprint dataset (8.1M+ attack sessions recorded)
Jan 13, 2026 ⚠️ [NEW] IronGate Security identifies DPRK (North Korea) exploitation Indicators linked to Contagious Interview campaign EtherRAT (blockchain C2 backdoor) deployed post-exploitation Attacker staging involves downloading Node.js runtime before payload
Jan 26, 2026 Additional DoS vulnerability CVE-2026-23864 disclosed and patched
Mar 04, 2026 Dynatrace advisory updated with latest remediation guidance
---
## المراجع
| المصدر | الرابط |
|---------------------------------|-----------------------------------------------------------------------------------------------|
| الإعلان الرسمي من React | https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components |
| React2Shell (المكتشف) | https://react2shell.com |
| إعلان Next.js | https://nextjs.org/blog/CVE-2025-66478 |
| تحليل متعمق من Wiz | https://www.wiz.io/blog/critical-vulnerability-in-react-cve-2025-55182 |
| مدونة أمان Microsoft | https://www.microsoft.com/en-us/security/blog/2025/12/15/defending-against-the-cve-2025-55182-react2shell-vulnerability-in-react-server-components/ |
| معلومات التهديدات من Google | https://cloud.google.com/blog/topics/threat-intelligence/threat-actors-exploit-react2shell-cve-2025-55182 |
| النشرة الأمنية من AWS | https://aws.amazon.com/security/security-bulletins/AWS-2025-030/ |
| إسناد China-Nexus من AWS | https://aws.amazon.com/blogs/security/china-nexus-cyber-threat-groups-rapidly-exploit-react2shell-vulnerability-cve-2025-55182/ |
| وحدة 42 من Palo Alto | https://unit42.paloaltonetworks.com/cve-2025-55182-react-and-cve-2025-66478-next/ |
| بحث Trend Micro | https://www.trendmicro.com/en_us/research/25/l/CVE-2025-55182-analysis-poc-itw.html |
| شبكة مراقبة GreyNoise | https://www.greynoise.io/blog/cve-2025-55182-react2shell-opportunistic-exploitation-in-the-wild-what-the-greynoise-observation-grid-is-seeing-so-far |
| تحليل Darktrace | https://www.darktrace.com/blog/react2shell-how-opportunist-attackers-exploited-cve-2025-55182-within-hours |
| إعلان Dynatrace | https://www.dynatrace.com/news/blog/cve-2025-55182-react2shell-critical-vulnerability-what-it-is-and-what-to-do/ |
| BleepingComputer — برامج الفدية | https://www.bleepingcomputer.com/news/security/critical-react2shell-flaw-exploited-in-ransomware-attacks/ |
| IronGate — نشاط كوريا الشمالية | https://www.irongatesecurity.com/ironintel/react2shell-cve-2025-55182 |
| إدخال NVD | https://nvd.nist.gov/vuln/detail/CVE-2025-55182 |
---
**إشادة الثغرة:**
الاكتشاف الأصلي والإفصاح المسؤول بواسطة **Lachlan Davidson** (29 نوفمبر 2025).
---
*آخر تحديث: 16 أبريل 2026*
*هذا المستند مخصص للأغراض التعليمية والدفاعية الأمنية فقط.*
| CVE ID | الوصف | الخطورة | الحالة |
|---|
| CVE-2025-55182 | RSC Remote Code Execution — هذه الثغرة | 10.0 | تم التصحيح |
| CVE-2025-66478 | Next.js RCE في المصب (تم تأكيد التكرار) | 10.0 | مرفوض — مكرر |
| CVE-2025-55183 | كشف الكود المصدري عبر RSC | 5.3 | تم التصحيح في 19.2.2+ |
| CVE-2025-55184 | حرمان من الخدمة عبر حلقة لا نهائية في محلل RSC | 7.5 | تم التصحيح في 19.2.2+ |
| CVE-2025-67779 | DoS — إصلاح غير كامل لـ CVE-2025-55184 | 7.5 | تم التصحيح في 19.2.3+ |
| CVE-2026-23864 | حرمان إضافي من الخدمة عبر RSC (يناير 2026) | 7.5 | تم التصحيح |