紧急插播: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。🙏

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


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

相关推荐
ZC跨境爬虫3 小时前
跟着 MDN 学 HTML day_9:(信件语义标记)
前端·css·笔记·ui·html
前端老石人3 小时前
HTML 字符引用完全指南
开发语言·前端·html
幼儿园技术家4 小时前
前端如何设计权限系统(RBAC / ABAC)?
前端
前端摸鱼匠5 小时前
Vue 3 的v-bind合并行为:讲解v-bind与普通属性合并的规则
前端·javascript·vue.js·前端框架·ecmascript
REDcker6 小时前
浏览器端Web程序性能分析与优化实战 DevTools指标与工程清单
开发语言·前端·javascript·vue·ecmascript·php·js
donecoding7 小时前
一个 sudo 引发的血案:npm 全局包权限错乱彻底修复
前端·node.js·前端工程化
风骏时光牛马7 小时前
Raku正则匹配与数据批量处理实操案例
前端
nbwenren7 小时前
2026实测:Gemini 3 镜像站视觉能力实践——拍照原型图,一键生成 HTML+CSS 代码
前端·css·html
Lee川7 小时前
Prisma 实战指南:像搭积木一样设计古诗词数据库
前端·数据库·后端