
إثبات المفهوم (PoC) العامل لـ CVE-2025-55182 (React2Shell) - تنفيذ تعليمات برمجية عن بعد غير مصادق عليه في Next.js 15.0.0 عبر مكونات خادم React
⚠️ لأغراض تعليمية فقط
تم إنشاء هذا المستودع بدقة للأغراض التعليمية والبحثية. يوضح ثغرة خطيرة في مكونات React Server Components (Next.js) لمساعدة المطورين على فهم المخاطر وأهمية تحديث تبعياتهم.
لا تستخدم هذا الكود في الإنتاج أو ضد أنظمة لا تملكها.
يعيد هذا المشروع إنتاج CVE-2025-55182 (المعروف أيضًا باسم "React2Shell")، وهي ثغرة تنفيذ التعليمات البرمجية عن بُعد (RCE) تؤثر على مكونات React Server Components في تطبيقات Next.js.
multipart/form-data مُعدًا يستغل منطق إلغاء التسلسل (deserialization) لمكونات React Server Components لتنفيذ كود JavaScript عشوائي على الخادم.
app/page.js: يحتوي على لوحة التحكم التفاعلية للاستغلال (Interactive Exploit Dashboard). يسمح لك هذا المكون من جانب العميل (Client Component) بتشغيل أوامر RCE مباشرة من المتصفح.app/actions.js: يحتوي على إجراء خادم (Server Action) قياسي. تكمن الثغرة في منطق التحليل (parsing) الخاص بالإطار قبل تنفيذ هذا الإجراء.exploit.js: سكريبت Node.js مستقل لعرض الاستغلال برمجيًا.استنساخ المستودع:
git clone https://github.com/pkrasulia/CVE-2025-55182-NextJS-RCE-PoC.git
cd react-cve-test
(اختياري) استخدام إصدار Node.js الصحيح:
nvm use
تثبيت التبعيات (سيؤدي هذا إلى تثبيت الإصدارات الضعيفة):
npm ci --legacy-peer-deps
# أو
npm install --force
بدء خادم التطوير:
npm run dev
يجب أن يبدأ الخادم على http://localhost:3000.
http://localhost:3000 في متصفحك.whoami، ls -la، أو cat package.json).يمكنك تشغيل سكريبت الاستغلال مباشرة من الطرفية:
# الاستخدام الأساسي
node exploit.js http://localhost:3000 "whoami"
# فتح الآلة الحاسبة (لينكس) - استخدم '&' للتشغيل في الخلفية
node exploit.js http://localhost:3000 "gnome-calculator &"
لإصلاح هذه الثغرة في مشاريعك الخاصة:
npm install next@latest react@latest react-dom@latest
المؤلف غير مسؤول عن أي إساءة استخدام لهذه المعلومات. هذا المشروع مخصص لمساعدة باحثي الأمن والمطورين على تحسين أمان تطبيقاتهم.