Next.js 严重 RCE 漏洞:CVE-2025-66478 修复指南与深度解析
妈鸭,在 2025 年 12 月 3 日,Next.js 官方发布了编号为 CVE-2025-66478 的紧急安全公告。

简单来说:CVE-2025-66478 就是 Next.js 版本的“React2Shell”远程代码执行漏洞。
如果你服务器上部署了一些开源的 nextjs 框架项目,例如 ai-chatbot,dify,lobechat,nextchat 等,哪怕是 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 的影响:
- 使用了 Next.js 15 或 Next.js 16。
- 或者使用了 Next.js 14 的 Canary 版本 (14.3.0-canary.77 及以上)。
- 使用了 App Router (即代码在
app/目录下)。
注意:如果你只使用 pages/ 目录 (Pages Router) 且使用的是 Next.js 14 的稳定版 (Stable),通常不受此漏洞影响。
修复方案 (针对 CVE-2025-66478)
Next.js 官方已经发布了多个补丁版本来修复此问题,请根据你的主版本号进行升级:
| 当前主版本 | 最小安全版本 |
|---|---|
| Next.js 15.0 | v15.0.5 |
| Next.js 15.1 | v15.1.9 |
| Next.js 15.2 | v15.2.6 |
| Next.js 15.3 | v15.3.6 |
| Next.js 15.4 | v15.4.8 |
| Next.js 16.0 | v16.0.7 |
升级命令:
| |
临时缓解措施 (无法立即升级时)
- WAF 拦截 (针对 RCE):
- 如果你使用 Cloudflare 或其他 WAF 服务,请确保开启了针对 CVE-2025-55182/CVE-2025-66478 的托管规则。这些规则通常会拦截包含恶意序列化特征的请求。
- 禁用 Server Actions:
- 如果在旧版本中不依赖 Server Actions 功能,可以在
next.config.js中禁用该实验性功能(针对 v13/v14 早期版本)。
- 检查 CDN 配置:
- 针对 CVE-2025-49826,检查你的 CDN 配置,禁止缓存 HTTP 204 状态码的响应,以防止空白页面被缓存。
最后说几句
关键时刻,大善人还是保我狗命,虽然在更新策略时出了点问题,导致大面积断网,但是这样及时的主动防护,还是救了不少网站的。

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

