یک آسیبپذیری خطرناک در فریمورک Next.js شناسایی شده است که به مهاجمان امکان دور زدن کنترلهای امنیتی Middleware را از طریق دستکاری هدر x-middleware-subrequest میدهد.
این آسیبپذیری میتواند منجر به دسترسی غیرمجاز به بخشهای حساس برنامه شود.
-میزان خطر: بسیار بالا (Critical)
-دامنه تأثیرپذیری: بیش از ۹.۵ میلیون سرویس مبتنی بر Next.js
نسخههای آسیبپذیر: 11.x تا 15.x (نسخههای قبل از 15.2.3)
مکانیزم فنی Middleware در Next.js
وظیفه: پردازش درخواستها قبل از رسیدن به صفحه مقصد.
مشکل: اگر هدر x-middleware-subrequest وجود داشته باشد، سیستم آن را به عنوان یک درخواست داخلی شناسایی میکند و Middleware را اجرا نمیکند (NextResponse.next()).
نمونه کد آسیبپذیر در next-server.ts :
if (subRequests.includes(middlewareInfo.name)) {
return NextResponse.next(); // bypass Middleware
}هکر میتواند مقدار middlewareInfo.name را حدس بزند (مثلاً pages/_middleware یا src/middleware).
نحوه اکسپلویت کردن :
یک نمونه برای نسخههای قدیمی (قبل از 12.2)
کافیست یک درخواست معمولی با هدر جعلی ارسال شود:
GET /admin HTTP/1.1
Host: example.com
x-middleware-subrequest: pages/_middleware
سیستم فکر میکند این یک درخواست "داخلی" است.
تمام مکانیزم های Middleware (مثل Auth) نادیده گرفته میشوند.
Reference:
https://github.com/azu/nextjs-cve-2025-29927-poc
@securation