科技

Next.js两条免登录RCE同日修复:Netlify托管路径不受影响

|作者: QUASA 编辑团队|2 分钟阅读| 8
Next.js两条免登录RCE同日修复:Netlify托管路径不受影响

Next.js于2026年8月25日披露并修复两条Critical级别的免登录远程代码执行漏洞,安全版本均为15.5.2416.3.3Netlify的同日安全更新 显示,其托管站点不受Windows漏洞影响,也不会运行存在问题的Next.js图片优化路径,但平台仍建议升级并重新部署。

项目维护者不能把两条漏洞合并为一个笼统的“Next.js云端风险”。AVIF漏洞取决于文件是否进入内置图片优化器;Windows漏洞则要求服务端使用Windows文件系统、同时运行Pages Router与App Router,并且没有启用Cache Components。

AVIF漏洞只在图片进入内置优化链时可达

攻击者控制的AVIF进入Next.js图片优化链,修复版本禁用存在问题的处理路径

第一条漏洞编号为GHSA-2xp9-vwfh-vxw4,问题位于Next.js图片优化所依赖的组件链:Next.js使用sharp处理图片,而sharp调用底层libheif解析AVIF。当AVIF文件进入该优化流程时,底层缺陷可能导致远程代码执行;这一漏洞不以Windows环境为前提。

Next.js的AVIF安全公告 将其评为Critical,CVSS v4评分为9.5;受影响范围为10.0.0以上且低于15.5.24的版本,以及16.0.0以上且低于16.3.3的版本,修复版本为15.5.24和16.3.3,并在底层修复完成传递前禁用AVIF优化。

因此,项目包含AVIF文件不等于漏洞必然可达。需要检查生产环境中的 /_next/image 请求是否由Next.js Image Optimization API处理,以及不可信来源的AVIF能否进入解码阶段。若文件只作为静态资源直接分发,没有经过内置优化器,就不满足这条漏洞所需的处理路径。

反过来,没有图片上传页面也不能直接排除风险。如果应用允许从外部URL获取图片,而图片地址或其内容可由不可信输入控制,服务器仍可能拉取并优化AVIF文件。判断重点是生产请求的真实去向,而不是仓库中是否出现“.avif”扩展名。

Windows漏洞要求版本、文件系统和路由配置同时命中

Windows上的Next.js双路由部署升级至15.5.24或16.3.3并替换旧实例

第二条漏洞为CVE-2026-75604,对应GHSA-p293-qw3h-jr36,属于Windows文件系统上的路径遍历问题,可能进一步造成远程代码执行。其受影响范围比AVIF漏洞更窄:Next.js 13.4.0以上且低于15.5.24,以及16.0.0以上且低于16.3.3。

Next.js的Windows服务器安全公告 列明了触发条件:服务端运行在使用Windows文件系统的机器上,应用同时使用Pages Router和App Router,并且没有启用Cache Components。该漏洞的CVSS v3.1评分为9.0,攻击不要求已有权限或用户交互;受影响的Windows托管应用没有已知变通方案。

这里的Windows条件指承载Next.js服务端进程的实际生产文件系统,并非开发人员使用Windows电脑,也不取决于构建任务是否曾在Windows上运行。如果最终提供服务的是Linux容器、Linux虚拟机或Linux函数运行时,这条特定攻击链不成立,但同一部署仍需单独检查AVIF图片优化路径。

代码仓库同时存在pages和app目录只能作为排查线索。维护者还要确认两套路由是否共同进入正在运行的部署产物、Cache Components是否启用,以及旧镜像、预览环境或回滚实例是否仍在接收流量。版本受影响、Windows文件系统、双路由并存和未启用Cache Components必须同时成立。

双漏洞判断应先看版本,再核对生产路径

两条漏洞共享修复版本,却没有共享触发机制。Linux自托管应用不会满足Windows文件系统条件,但仍可能处理恶意AVIF;Windows应用即使不处理AVIF,也可能因双路由并存且未启用Cache Components而暴露。

  1. 读取生产构建实际安装的next版本,而不是只查看package.json中的宽泛版本范围。15分支低于15.5.24或16分支低于16.3.3时,应升级到对应安全版本;更早版本需分别按照两条漏洞的版本下限判断。
  2. 检查AVIF链:确认 /_next/image 最终由Next.js内置接口、托管平台图片服务还是独立CDN处理,并核对不可信AVIF能否到达解码阶段。
  3. 检查Windows链:确认服务端实际使用Windows文件系统,再依次核对Pages Router、App Router和Cache Components状态。
  4. 升级依赖后重新部署所有相关实例,并检查回滚池、灰度节点和预览环境。更新锁文件不会自动替换仍在运行的旧进程。

部署条件可以用来划分暴露面,但不应替代版本修复。尤其是Windows漏洞没有已知变通方案;同一代码仓库如果同时部署到多个目标,也不能用一个生产站点的结论覆盖自托管、预览或客户私有化环境。

Netlify豁免来自具体架构,不能外推到其他云

Netlify的豁免有明确的技术边界:Functions和Edge Functions运行在Linux上,因此不满足Windows漏洞的文件系统条件;发往 /_next/image 的请求会在边缘改写到Netlify Image CDN,不会调用存在问题的Next.js Image Optimization API。

这一结论仅适用于Netlify托管站点的上述处理方式,不代表所有云端Next.js部署都安全。其他平台可能直接运行Next.js图片优化器,也可能允许Windows主机、自定义容器或不同的请求重写配置;同一仓库中的独立服务器同样可能采用另一套路径。

截至2026年8月30日,两条漏洞均已有正式修复版本。项目是否真正暴露仍取决于每个正在运行的部署:既要确认实际安装的Next.js版本,也要分别核实AVIF请求去向和Windows双路由条件,不能仅凭“使用Next.js”“部署在云端”或某个平台的影响结论作出判断。

分享:

订阅我们的新闻通讯

将最新 Web3、AI 和加密货币新闻直接发送到您的邮箱。

0