开发

重大 Next.js 漏洞问题,小心账单爆炸

Created: 02/02/2026

2025年这波 Next.js 安全事件,很多人第一反应都是“离我很远”,但我这次是被实打实打醒的:我在Vercel上一个几乎没流量的网站,CPU占用突然激增,但访客数据几乎没变化,典型就是被远程植入挖矿/恶意进程的信号。后来确认和 React Server Components 的未授权远程执行漏洞有关(社区里常用 CVE-2025-66478 来指代)。我最终按Vercel提示逐个排查项目并升级版本,把 Next.js 从 15.2.1 升到 15.2.6,React 从 19.0.0 升到 19.0.1,改动很小但能快速止血。下面把我这次排查和修复的完整流程讲清楚,照着做能把风险压到最低。

这次漏洞为什么要当成“必修课”来处理

这不是“某个边角功能”的小洞,而是被官方定性为未鉴权即可远程执行代码级别的严重问题,属于你只要跑在受影响版本上、又暴露了相关攻击面,就可能被打穿的那种。React 团队和 Next.js/Vercel 都明确建议立即升级

另外补一嘴:很多人看到的是 CVE-2025-66478(Next.js 侧的编号),安全研究里也提到它后来被标记为上游 React 漏洞的重复项,但这不影响实质风险,你该修还是得修。

我怎么发现自己中招了

我一开始也没太在意,直到看到群里很多人中招,有的被加密勒索,有的被植入挖矿程序。然后我去看自己的 Vercel,发现我也踩到了同一类问题。

我这次的“异常信号”很典型:

  • 一个几乎没什么流量的网站
  • CPU占用激增
  • 访客/访问量没有对应增长
  • 先是资源异常,后面才意识到账单风险:如果不及时止损,可能直接把账单打爆

这种“资源飙升但流量不变”,在我经验里优先级很高:不是代码写得慢,是有人在你机器上跑别的东西。

先别慌,先按流程止血排查

下面是我实际做的顺序,建议你也按这个顺序来,别一上来就瞎改。

第一步锁定受影响项目

在 Vercel 上,顶部会出现“异常项目/安全提示”一类的提醒,你点进去能看到被影响的项目列表,然后按项目逐个处理

如果你不在 Vercel,也同样适用这个思路:先列清单,把“用了 Next.js 15/16 且启用了 App Router/RSC 相关能力”的项目先打上高危标签。

第二步确认你的 Next.js 和 React 版本

我当时的版本是:

  • React:19.0.0
  • Next.js:15.2.1

这两个版本都落在受影响范围里,需要升级到修复版本。

第三步立即升级到修复版本

我这次的升级非常直接:

  • Next.js:15.2.1 → 15.2.6
  • React:19.0.0 → 19.0.1

我把变更整理成表格,方便你对照:

组件修复前版本修复后版本备注
React19.0.019.0.1React 官方/安全公告列为修复版本之一
Next.js15.2.115.2.6Next.js 安全公告列为 15.2 分支修复版本

这些“哪些版本算修复”不是我拍脑袋定的,Next.js 的安全公告和 GitHub 安全通告里给了清晰的修复版本列表。

我自己的经验:如果你不确定该升到哪个版本,别纠结“最小改动”,优先升到你所在分支的明确修复版本,或者直接升到官方建议的最新稳定版,先把洞堵上再说。

第四步用官方提供的修复脚本加速处理

Next.js 官方在公告里提到发布了一个用于修复受影响 Next.js 应用的 npm 工具,可以用来快速更新/打补丁(适合你项目多、需要批量处理的情况)。

第五步升级后做一次“是否还在被打”的复查

升级只是第一步,我建议你至少做三件事来确认是否止血:

  • 看 CPU/内存是否回落到正常区间
  • 看部署后是否还有异常进程/异常请求(Vercel/自建服务器日志都要看)
  • 看账单/用量曲线是否恢复正常(尤其是 Functions/带宽/出网等)

如果你在自建服务器上跑,CPU飙升还可能意味着挖矿进程残留,这种情况下光升级不够,得继续做“清理+密钥轮换+重建”这一套。

受影响范围和修复版本要点

为了让你快速判断,我把“影响范围”用一句话说清楚:

  • 这是 React Server Components 相关的未授权 RCE 问题,影响 React 19 的特定版本,以及使用这些版本的框架(包括 Next.js 15/16 的部分范围)。
  • Vercel 的安全说明里也明确提到 Next.js 15.0.0 到 16.0.6 的受影响区间,并强调“无论你有没有其他防护,都要升级”。
  • GitHub 安全通告给出了 Next.js 与 React 的修复版本列表,比如 React 修复在 19.0.1 等版本,Next.js 修复在 15.2.6 等版本。

我这次最大的教训

我现在的态度很简单,也想直接提醒你:

  • 这种级别的漏洞不要“观望”
  • 你觉得你没流量,反而更容易被当成“安静的矿机”
  • 只要你线上跑的是受影响版本,就立刻升级、立刻复查

你如果愿意,我也可以按你实际项目情况给你一个“升级检查清单”,比如你用的是 App Router 还是 Pages Router、有没有 Server Actions、部署在 Vercel 还是自建服务器,对应复查点会稍有差别。