紧急插播:CVSS 10.0 满分漏洞!你的 Next.js 项目可能正在裸奔

🚨 紧急插播: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. 实在升不动怎么办?(救急用)

"大佬,我项目太老/依赖冲突,升了就崩啊!"

理解理解,业务由于某些不可抗力暂时动不了。这时候只能死马当活马医了:

  1. 降级保平安 :如果没用到最新的 RSC 特性,尝试退回到 Next.js 14.2.x 稳定版(确认为非 Canary 版本)。
  2. WAF 挡一挡:在 Nginx 或者云厂商的 WAF 上,针对异常的大包体或者畸形的 RSC 请求头做拦截。但说实话,这招防君子不防小人。

5. 这是一个教训

这次漏洞也给咱们提了个醒:

  1. 生产环境别乱用 Canary:除非你真的需要那个特性,否则稳定版才是王道。
  2. Lock 文件要提交package-lock.json / yarn.lock 是保命符,别 gitignore 了。
  3. 关注安全公告:没事多刷刷 GitHub Advisory,或者关注我(疯狂暗示),有大瓜第一时间带你吃。

最后: 此时此刻,还在加班修 Bug 的运维和开发兄弟们,辛苦了!愿世间再无 RCE。🙏

如果你觉得这篇文章救了你的服务器,点个赞再走呗~


免责声明: 本文操作仅供参考,生产环境变更前请务必在测试环境验证!炸了别找我!

相关推荐
却尘3 小时前
Next.js 请求最佳实践 - vercel 2026一月发布指南
前端·react.js·next.js
ccnocare3 小时前
浅浅看一下设计模式
前端
Lee川3 小时前
🎬 从标签到屏幕:揭秘现代网页构建与适配之道
前端·面试
Ticnix3 小时前
ECharts初始化、销毁、resize 适配组件封装(含完整封装代码)
前端·echarts
纯爱掌门人3 小时前
终焉轮回里,藏着 AI 与人类的答案
前端·人工智能·aigc
twl3 小时前
OpenClaw 深度技术解析
前端
崔庆才丨静觅3 小时前
比官方便宜一半以上!Grok API 申请及使用
前端
星光不问赶路人4 小时前
vue3使用jsx语法详解
前端·vue.js
天蓝色的鱼鱼4 小时前
shadcn/ui,给你一个真正可控的UI组件库
前端
布列瑟农的星空4 小时前
前端都能看懂的Rust入门教程(三)——控制流语句
前端·后端·rust