
اختبار وتحليل ثغرة CVE-2025-55182 في Next.js Server Actions
حالة المشروع: تجريبي / إثبات المفهوم
هذا المستودع يعمل كبيئة بحثية خاضعة للرقابة وإطار عمل إثبات المفهوم (PoC) لتحليل CVE-2025-55182. يوضح ثغرة تلوث النموذج الأولي (Prototype Pollution) ضمن سياق إجراءات خادم Next.js، مستهدفًا بشكل خاص عمليات الدمج التكراري غير الآمنة.
تكمن الثغرة الأساسية في دالة مساعدة مخصصة deepMerge تم تنفيذها ضمن إجراء خادم Next.js (syncConfiguration). تفتقر الدالة إلى التنظيف الكافي لمفاتيح الكائنات الخاصة - تحديدًا __proto__ و constructor. يسمح هذا الإهمال لمهاجم غير موثوق بحقن خصائص عشوائية في Object.prototype العالمي.
في بيئة تشغيل Node.js من جانب الخادم، يمكن أن يؤدي تلوث النموذج الأولي الناجح إلى:
isAdmin)، أو إعدادات التهيئة على المستوى العام.toString أو valueOf.child_process أو محركات القوالب) لتحقيق تنفيذ تعليمات برمجية عشوائية.lab/next-app/: تطبيق Next.js 15 ضعيف مصمم لمحاكاة الثغرة الأمنية.
src/app/actions.jsx: كود جانب الخادم الذي يحتوي على تنفيذ deepMerge الضعيف.exploits/: نصوص Python لأتمتة الاختبار والاستغلال.
rce.py: نص يقوم بأتمتة حقن حمولات JSON ضارة لإظهار تلوث حالة الخادم.get-shell.py: إثبات مفهوم متقدم يستكشف نواقل إلغاء تسلسل بروتوكول RSC Flight.docs/PAYLOADS.md: مستند مرجعي يحتوي على حمولات JSON متنوعة للاختبار اليدوي والتحليل.يمكنك تشغيل المختبر باستخدام Docker (موصى به) أو محليًا.
تأكد من تثبيت Docker و Docker Compose.
docker-compose up --build
سيكون التطبيق متاحًا على http://localhost:3000.
يتطلب Node.js 20+.
cd lab/next-app
npm install
npm run dev
سيكون التطبيق متاحًا على http://localhost:3000.
http://localhost:3000.docs/PAYLOADS.md (مثل الحمولة الأساسية).تتيح نصوص Python المقدمة التحقق البرمجي من الثغرة.
المتطلب الأساسي: استرجع معرف الإجراء التالي (Next-Action ID) من علامة الشبكة Network في المتصفح (ابحث عن رأس طلب POST Next-Action) أو من إخراج طرفية الخادم.
docker exec -it exploit-runner bash
export ACTION_ID="your_action_id_here"
python3 rce.py "id"
pip install -r exploits/requirements.txt
export ACTION_ID="your_action_id_here"
python3 exploits/rce.py "id"
ملاحظة: تم تكوين البرنامج النصي rce.py لإظهار تلوث الحالة الناجح. يعتمد تنفيذ شل الكامل على أدوات بيئية محددة قد تختلف.
هذا المشروع مخصص فقط للأغراض التعليمية والبحث الأمني.
لا تستخدم الكود أو التقنيات المقدمة هنا على الأنظمة التي ليس لديك إذن صريح كتابي لها. المؤلفون غير مسؤولين عن أي استخدام خاطئ أو ضرر ناتج عن هذه المادة.