
استغلال إثبات المفهوم لـ CVE-2025-29927، وهي ثغرة تجاوز وسيط Next.js. يتضمن بصمة الإصدار، ومعالجة رأس قابلة للتكوين، واستدلالات كشف النجاح لاختبار تجاوز المصادقة.
يحتوي هذا المستودع على إثبات مفهوم (PoC) لثغرة CVE-2025-29927، وهي ثغرة في Middleware الخاص بـ Next.js تسمح بتجاوز عمليات التحقق من المصادقة والتفويض عبر التلاعب بالترويسات.
النسخ المتأثرة: >= 11.1.4, <= 1 3.5.6, > 14.0.0, < 14.2.25, > 15.0.0, < 15.2.3
معرّف CVE: CVE-2025-29927
الخطورة: عالية (CVSS: 9.1)
توجد الثغرة في سلسلة تنفيذ Middleware في Next.js، حيث يمكن للمهاجم التلاعب بترويسة x-middleware-subrequest لتجاوز الضوابط الأمنية لـ Middleware. من خلال صياغة قيمة محددة للترويسة، يمكن خداع Middleware ليتعامل مع الطلب كما لو كان قد تمت معالجته بالفعل، مما يؤدي فعليًا إلى تجاوز فحوصات المصادقة.
تم اختبار هذه الأداة على: Next.js من الإصدار 15.0.0 حتى 15.2.2، والإصدارات الأخرى قد تتطلب تعديلات.
ثبّت التبعيات باستخدام:
pip install -r requirements.txt
python poc-cve-2025-29927.py http://example.com/protected-route
usage: poc-cve-2025-29927.py [-h] [-r REPEAT] [-o OUTPUT] [--no-browser] [-f] url
PoC for CVE-2025-29927 - Next.js Middleware Bypass
positional arguments:
url Target URL to test (e.g., http://localhost:3000/admin/dashboard)
options:
-h, --help show this help message and exit
-r REPEAT, --repeat REPEAT
Number of middleware repeats in header (default: 5)
-o OUTPUT, --output OUTPUT
Output file name (default: response.html)
--no-browser Do not open result in browser
-f, --force Skip version check and force exploit attempt
python poc-cve-2025-29927.py http://localhost:3000/admin/dashboard
python poc-cve-2025-29927.py http://target-site.com/admin/dashboard -f
python poc-cve-2025-29927.py http://vulnerable-app.com/protected-page -r 10 -o result.html --no-browser
يحاول السكربت أولاً تحديد بصمة إصدار Next.js للتطبيق الهدف باستخدام طرق كشف مختلفة
إذا تم اكتشاف إصدار معرض للثغرة (15.0.0-15.2.2)، فإنه يتابع تنفيذ الاستغلال
يتم إرسال طلب يحتوي على ترويسة x-middleware-subrequest مصممة خصيصًا
يتم حفظ الاستجابة في ملف وتحليلها بحثًا عن مؤشرات النجاح
إذا نجح الاستغلال، سيكون المحتوى المحمي قابلًا للوصول دون مصادقة
إذا كنت تشغّل إصدارًا معرضًا للثغرة من Next.js، فقم بالترقية إلى الإصدار 15.2.3 أو أحدث لتصحيح هذه الثغرة.
تم توفير هذه الأداة لأغراض تعليمية وبحوث أمنية فقط. استخدمها فقط ضد التطبيقات التي تملكها أو لديك إذن صريح لاختبارها. قد يؤدي الاختبار غير المصرح به إلى انتهاك القوانين المعمول بها.
هذا المشروع مرخّص بموجب رخصة MIT - راجع ملف LICENSE للحصول على التفاصيل.
Heimd411
باحث أمني
الملف الشخصي على GitHub
هذا المستودع