
إثبات مفهوم لاستغلال CVE-2025-29927 الذي يضيف x-middleware-subrequest لتجاوز فحوصات مصادقة البرامج الوسيطة في Next.js.
يحتوي هذا المستودع على إثبات مفهوم لثغرة CVE-2025-29927 في Next.js، حيث يمكن استغلال الرأس الداخلي x-middleware-subrequest لتجاوز فحوصات الوسيط (middleware) مثل المصادقة.
🧪 تم اختبار هذا المشروع باستخدام Next.js v13.4.19.
git clone https://github.com/goncalocsousa1/CVE-2025-29927.git
cd CVE-2025-29927
npm install
npm run dev
http://localhost:3000
يُظهر التطبيق نظام مصادقة بسيط مع مسار محمي يمكن تجاوزه باستخدام ثغرة CVE-2025-29927. إليك كيفية عمله:
الصفحة الرئيسية (/)
auth-token)الصفحة المحمية (/protected)
auth-tokenحماية الوسيط (Middleware)
auth-token/protected/*، يعيد التوجيه إلى الصفحة الرئيسيةعرض الثغرة
x-middleware-subrequestauth-token صالح، يمكن للمهاجمين الوصول إلى المسارات المحميةيتضمن هذا التطبيق مسارًا محميًا عند /protected يتطلب المصادقة عادةً. ولكن، باستخدام الرأس x-middleware-subrequest: middleware في طلب مثل curl -H "x-middleware-subrequest: middleware" http://localhost:3000/protected، يمكنك تجاوز فحص المصادقة.
يمكنك أيضًا إعادة إنتاج هذا السلوك باستخدام Burp Suite عن طريق اعتراض الطلب وإضافة الرأس يدويًا.
لتجربة ذلك مع Burp Suite، افتح علامة التبويب Proxy وانتقل إلى علامة التبويب الفرعية Intercept. تأكد من أن Intercept is On، ثم انقر على Open Browser وانتقل إلى المسار المحمي: http://localhost:3000/protected

سيلتقط Burp Suite الطلب إلى المسار المحمي. من هناك، أضف الرأس التالي: x-middleware-subrequest: middleware (مظلل في لقطة الشاشة أعلاه). أخيرًا، قم بإعادة توجيه الطلب والوصول إلى المسار المحمي.

قم بالتحديث إلى إحدى الإصدارات المصححة التالية: