Next.js两个漏洞不用登录就能执行代码,没有绕开办法,只能升级

来源:互联网 时间:2026-10-22

Next.js在10月14日发了两个补丁版本,16.4.1和15.5.28,修的是三个问题,其中两个评为Critical。这批修复本来排在9月的安全版本里,因为上游依赖没跟上才单独发了一次带外更新。两个Critical的编号是GHSA-673q-mjm6-r5xr和CVE-2026-96889,查公告时按这两个找。

第一个洞影响App Router加Cache Components的应用,触发点是use cache函数返回多个typed array。两个条件缺一不可,只开App Router没启用Cache Components的不在范围内。

官方说即使应用里没有这类函数也要立刻升级,理由是代码路径由框架内部走到,不取决于业务有没有写过。这一条没有提供任何绕开办法,条件看着窄,实际覆盖面由框架版本和构建配置决定。升级是唯一的处置方式,公告里没给第二选项。

第二个漏洞走图片优化接口。Next.js对站点图片做尺寸裁剪和格式转换时会经过这个接口,应用一旦接了SVG格式,攻击者传一个特制的SVG,请求经过接口时命中上游图像库的内存问题。这条链只在glibc的Linux上成立,用musl等其它libc构建的镜像不在范围里。这一条与libc相关,另外两个洞跟libc无关。它不需要账号,上传即可触发,前置条件只有一个:站点接受SVG上传或转发,而图片优化默认是开着的。

这一条给了临时办法:把Next.js依赖的sharp提到0.35.5或以上。升级Next.js本身也会把修好的sharp带进来,装了新版就不必单独处理,别再手动把版本降回去。

第三个评级低一些,利用Server Actions的特制请求把CPU占满。占用发生在进程级别,一个请求卡住,后续请求跟着排队,表现是整站变慢而不是报错。判断自己是否在用,看app目录里有没有带use server标记的函数,或者页面里有没有直接调用服务端函数。走Pages Router的老项目整个不在范围里。

升完还要做什么

升到16.4.1或15.5.28之后,还要确认容器镜像重新构建过。依赖装在镜像构建阶段,只改package.json不重建,线上跑的还是旧版。版本号在本地看着是对的,实际加载的不是。这一步容易漏。

锁文件和依赖树也要核。锁了精确版本、或者有间接依赖引了旧版的,npm install不一定拉到新版本,用npm ls next确认实际安装的版本。依赖树深的时候输出很长,按next过滤一遍。

两个Critical漏洞目前都没有在野利用的公开记录,等级高是因为利用门槛低,不需要账号也不需要用户点击。同一份代码跑在多个部署环境里的,每个环境都要走一遍。内网和预览环境可以排在公网之后,但不能不排,测试环境的配置往往更松。

相关文章

标签:

A5创业网 版权所有