🚨 紧急插播:CVSS 10.0 满分漏洞!你的 Next.js 项目可能正在裸奔(含保姆级修复指南)
⚠️ 高能预警:这不是演习!这不是演习!
大家好,我是 [你的名字]。今天不聊架构,不聊源码,咱们来聊聊保命的事儿。
就在 2025 年 12 月初,安全圈炸锅了。React 和 Next.js 生态爆出了一个核弹级漏洞(CVE-2025-66478 & CVE-2025-55182),CVSS 评分直接拉满到了 10.0 。什么概念?这意味着攻击者不需要登录、不需要复杂的权限 ,动动手指发个 HTTP 请求,就能在你服务器上执行任意代码 (RCE)。
兄弟们,赶紧放下手里的咖啡,跟我一起检查下你的线上服务吧!
1. 发生了什么?
简单说,就是 React Server Components (RSC) 的通信协议(Flight 协议)里,出了一个反序列化的 Bug。
- 漏洞编号:CVE-2025-66478 (Next.js) / CVE-2025-55182 (React)
- 危险等级 :🔥 Critical (RCE)
- 谁在射程内 :
- 只要你用了 App Router。
- 或者你用了 React Server Components。
- 特别是 Next.js 15.x / 16.x 的早期版本,以及 Next.js 14.x 的部分 Canary 版本。
- 划重点 :默认配置下的
create-next-app项目如果是上述版本,直接中招。
如果不修,黑客不仅能看你的环境变量(数据库密码、API Key),甚至能直接接管你的服务器挖矿。😱
2. 赶紧自查!(手把手教你)
别慌,先确认下自己是不是"天选之子"。连上你的服务器,或者在本地项目里跑一下:
第一步:看一眼 package.json
bash
# 看看你显式安装的版本
cat package.json | grep next
第二步:看一眼实际安装版本(这步很关键!)
有时候 package.json 里写的是 ^15.0.0,但实际 node_modules 里跑的可能是个有漏洞的小版本。
bash
# 查查户口本
npm list next
# 或者 yarn 党
yarn list next
🚨 死亡名单
如果你看到版本号落在下面这些区间,请立即开启"一级战备"状态:
- ❌ Next.js 15.x 全系(未打补丁前)
- ❌ Next.js 16.x 预览版(未打补丁前)
- ❌ Next.js 14.x 的 Canary 版本(尤其是
>= 14.3.0-canary.77)
3. 怎么救?(Ctrl+C, Ctrl+V 就能用)
官方响应很快,补丁已经发了。升级是唯一靠谱的方案,别整那些花里胡哨的 WAF 规则,容易被绕过。
方案 A:我是稳定党 (推荐) 🚀
如果你的项目没什么魔改依赖,直接升到最新的稳定版 Patch。
bash
# npm 党
npm install next@latest react@latest react-dom@latest
# yarn 党
yarn add next@latest react@latest react-dom@latest
# pnpm 党 (yyds)
pnpm add next@latest react@latest react-dom@latest
方案 B:我是激进党/Canary 依赖者 🧪
有些兄弟为了尝鲜或者某些特性锁死了 Canary 版本,那你得升到修复后的 Canary(比如 15.6.0-canary.58 或更新)。
bash
npm install next@canary
⚠️ 别忘了最后一步!
升级完依赖,代码只是在硬盘上变了,内存里跑的还是旧的。一定要重启服务!一定要重启服务!一定要重启服务!
bash
# PM2 用户
pm2 reload all
# Docker 用户
docker-compose up -d --build
4. 实在升不动怎么办?(救急用)
"大佬,我项目太老/依赖冲突,升了就崩啊!"
理解理解,业务由于某些不可抗力暂时动不了。这时候只能死马当活马医了:
- 降级保平安 :如果没用到最新的 RSC 特性,尝试退回到 Next.js 14.2.x 稳定版(确认为非 Canary 版本)。
- WAF 挡一挡:在 Nginx 或者云厂商的 WAF 上,针对异常的大包体或者畸形的 RSC 请求头做拦截。但说实话,这招防君子不防小人。
5. 这是一个教训
这次漏洞也给咱们提了个醒:
- 生产环境别乱用 Canary:除非你真的需要那个特性,否则稳定版才是王道。
- Lock 文件要提交 :
package-lock.json/yarn.lock是保命符,别 gitignore 了。 - 关注安全公告:没事多刷刷 GitHub Advisory,或者关注我(疯狂暗示),有大瓜第一时间带你吃。
最后: 此时此刻,还在加班修 Bug 的运维和开发兄弟们,辛苦了!愿世间再无 RCE。🙏
如果你觉得这篇文章救了你的服务器,点个赞再走呗~
免责声明: 本文操作仅供参考,生产环境变更前请务必在测试环境验证!炸了别找我!