Featured image of post Next.js 严重 RCE 漏洞:CVE-2025-66478 修复指南与深度解析

Next.js 严重 RCE 漏洞:CVE-2025-66478 修复指南与深度解析

Next.js 近期爆出最高危级别的远程代码执行 (RCE) 漏洞 (CVE-2025-55182/66478),影响 Next.js 15 及部分 14 Canary 版本。攻击者可利用 React Server Components 反序列化缺陷接管服务器。本文详细分析漏洞成因、受影响版本范围及紧急修复补丁方案。

Next.js 严重 RCE 漏洞:CVE-2025-66478 修复指南与深度解析

妈鸭,在 2025 年 12 月 3 日,Next.js 官方发布了编号为 CVE-2025-66478 的紧急安全公告。

nextjs_bug_01

简单来说:CVE-2025-66478 就是 Next.js 版本的“React2Shell”远程代码执行漏洞。

如果你服务器上部署了一些开源的 nextjs 框架项目,例如 ai-chatbotdifylobechatnextchat 等,哪怕是 docker 容器部署的,也有可能会中招!

关键点

  • CVE-2025-55182 指的是 React 库本身的代码问题。
  • CVE-2025-66478 指的是 Next.js 因为用了这个版本的 React 而导致的问题。
  • 修复方法:通过升级 Next.js 版本,会自动拉取修复后的 React 依赖。

漏洞介绍

  • CVE 编号: CVE-2025-66478
  • 关联编号: CVE-2025-55182 (上游 React 核心漏洞)
  • 别名: React2Shell
  • 类型: RCE (远程代码执行)
  • 严重等级: Critical (CVSS 10.0/10.0) - 满分最高危
  • 利用状态: 已有公开 Exploit (利用代码),且已被检测到在野攻击。

漏洞是如何触发的

Next.js 的 App Router 极度依赖 React 的 “Flight” 协议来在前后端传输数据。

  • 攻击点:Next.js 服务器在接收 POST 请求(例如 Server Actions)时,会解析请求体中的数据。
  • 手段:攻击者发送一个包含特殊恶意构造对象的请求(利用 __proto__ 等原型链污染技术)。
  • 结果:Next.js 服务器在反序列化(读取)这个对象时,会被诱导执行系统命令(如 exec),从而让攻击者获得服务器的控制权。

受影响的 Next.js 版本

只要你的项目满足以下条件,就极大概率受到 CVE-2025-66478 的影响:

  1. 使用了 Next.js 15Next.js 16
  2. 或者使用了 Next.js 14 的 Canary 版本 (14.3.0-canary.77 及以上)。
  3. 使用了 App Router (即代码在 app/ 目录下)。

注意:如果你只使用 pages/ 目录 (Pages Router) 且使用的是 Next.js 14 的稳定版 (Stable),通常不受此漏洞影响。

修复方案 (针对 CVE-2025-66478)

Next.js 官方已经发布了多个补丁版本来修复此问题,请根据你的主版本号进行升级:

当前主版本最小安全版本
Next.js 15.0v15.0.5
Next.js 15.1v15.1.9
Next.js 15.2v15.2.6
Next.js 15.3v15.3.6
Next.js 15.4v15.4.8
Next.js 16.0v16.0.7

升级命令

1
2
3
npm install next@latest react@latest react-dom@latest
# 或指定版本
npm install [email protected]

临时缓解措施 (无法立即升级时)

  1. WAF 拦截 (针对 RCE):
  • 如果你使用 Cloudflare 或其他 WAF 服务,请确保开启了针对 CVE-2025-55182/CVE-2025-66478 的托管规则。这些规则通常会拦截包含恶意序列化特征的请求。
  1. 禁用 Server Actions:
  • 如果在旧版本中不依赖 Server Actions 功能,可以在 next.config.js 中禁用该实验性功能(针对 v13/v14 早期版本)。
  1. 检查 CDN 配置:
  • 针对 CVE-2025-49826,检查你的 CDN 配置,禁止缓存 HTTP 204 状态码的响应,以防止空白页面被缓存。

最后说几句

关键时刻,大善人还是保我狗命,虽然在更新策略时出了点问题,导致大面积断网,但是这样及时的主动防护,还是救了不少网站的。

nextjs_bug_02

Cloudflare Managed ruleset 看到相关的配置,目前以自动加入了 Nextjs 的两个相关漏洞规则已经被标记为 阻止 操作。

nextjs_bug_03

Licensed under CC BY-NC-SA 4.0
本博客所有内容无特殊标注均为大卷学长原创内容,复制请保留原文出处。
Built with Hugo
Theme Stack designed by Jimmy