近日,Next.js 官方发布安全公告,披露其中间件系统中存在一个严重的授权绕过漏洞,编号为 CVE-2025-29927。该漏洞允许攻击者通过构造特殊请求,绕过中间件的安全检查机制,获取对受保护资源的未授权访问权限。这一漏洞对依赖中间件进行身份验证和授权控制的Web应用构成重大安全风险。
该漏洞影响以下版本的 Next.js:
• 14.2.25 之前版本
• 15.2.3 之前版本
尤其是那些在中间件中执行授权检查、但未对 x-middleware-subrequest 请求头进行验证的应用,风险尤为严重。
漏洞原理
Next.js 的中间件通常用于拦截 HTTP 请求,执行访问控制等安全策略。然而,攻击者可在请求中伪造 x-middleware-subrequest: true 请求头,中间件若未进行适当校验,便可能直接放行请求,从而绕过安全校验逻辑。
攻击方式示例
攻击者可构造如下请求实现绕过:
GET /protected-route HTTP/1.1
Host: vulnerable-app.com (http://vulnerable-app.com/)
x-middleware-subrequest: true
若中间件未拦截或校验此请求头,系统将可能错误地授予访问权限。
修复建议
Next.js 已在以下版本中修复该漏洞:
• 14.2.25
• 15.2.3
建议开发者立即升级至最新版本。若短期内无法完成升级,可通过在中间件中添加如下逻辑实现临时防护:
export function middleware(request: NextRequest) {
if (request.headers.has(‘x-middleware-subrequest’)) {
return new Response(‘Unauthorized’, { status: 401 });
}
return NextResponse.next (http://nextresponse.next/)();
}
检测与防御
开发者可通过监控 HTTP 请求日志,识别是否存在可疑请求头 x-middleware-subrequest,例如:
GET /protected-route HTTP/1.1 200 – x-middleware-subrequest: true
建议结合日志分析工具设置告警规则,及时发现潜在攻击行为。

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途。本站所有信息均来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权不妥之处请致信 E-mail:[email protected] 我们会积极处理。敬请谅解
暂无评论内容