next.js再出严重安全漏洞

next.js再出严重安全漏洞

原创 pippybear 安全无界 2025-03-25 23:12

受影响资产

依赖next.js进行身份验证或安全检查的应用程序。

漏洞利用方式

该漏洞可通过添加
x-middleware-subrequest: middleware
标头来绕过
 Next.js 的
身份验证检查。

漏洞编号

CVE-2025-29927

漏洞原理

这里稍稍引用大佬的原文内容。

主要的漏洞原因就是这段标圈的代码会取
header

x-middleware-subrequest
的值,然后使用
:
进行分割,最后问题在于只要校验这个请求头内容里面包含
middlewareInfo.name
就无视next.js的认证直接
bypass

这里的
middlewareInfo.name
即中间件所在的路径。


12.2
版本之前,中间件文件的命名为
_middleware.ts,
在之后的版本则为
middleware.ts
,因此可能的
payload
包含:

x-middleware-subrequest: pages/_middleware
x-middleware-subrequest: middleware
x-middleware-subrequest: src/middleware
......

而在较新的版本中,代码逻辑相比之前稍稍有些许变化,看以下这段
代码
,可以看到需要进行
5
次分割。

因此在较新版本里面
payload
为:

x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware
x-middleware-subrequest: src/middleware:src/middleware:src/middleware:src/middleware:src/middleware
.....

漏洞复现

如下,内部刚好有一个使用next.js进行身份验证的应用,直接访问可以看到,无法认证,授权不通过。

使用payload绕过认证,如下,直接访问认证后的应用。