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

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


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

相关推荐
幸运小圣1 小时前
动态组件【vue3实战详解】
前端·javascript·vue.js·typescript
用户413079810611 小时前
终于不漏了-Android开发内存泄漏详解
前端
孟祥_成都1 小时前
nest.js / hono.js 一起学!hono的设计思想!
前端·node.js
努力glow .1 小时前
彻底解决VMware下ROS2中gazebo启动失败的问题
前端·chrome
阿笑带你学前端1 小时前
开源记账 App 一个月迭代:从 v1.11 到 v2.2,暗黑模式、标签系统、预算管理全面升级
前端
AAA阿giao1 小时前
浏览器底层探秘:Chrome的奇妙世界
前端·chrome·gpu·多进程·单进程·v8引擎·浏览器底层
王兆龙1681 小时前
Vue3组件传值
前端·javascript·vue.js
随风一样自由2 小时前
React中实现iframe嵌套登录页面:跨域与状态同步解决方案详解
前端·react.js·前端框架·跨域
测试人社区—52722 小时前
破茧成蝶:DevOps流水线测试环节的效能跃迁之路
运维·前端·人工智能·git·测试工具·自动化·devops