毁灭吧,赶紧的。
就在上周,React Server Components (RSC) 刚刚曝出一个严重的远程代码执行 (RCE) 漏洞(代号 React2Shell),大家才火急火燎地把生产环境升级了一遍。
结果昨天,React 官方团队和 Next.js 团队又发布了紧急安全公告:在审计上周那个补丁的过程中,研究人员又顺藤摸瓜发现了两个新漏洞。
这一波真的是 "打地鼠" 游戏——按下葫芦浮起瓢。虽然官方强调这次没有 RCE(远程代码执行)风险,但一个是 **高危的拒绝服务 (DoS)**,另一个是中危的源码泄露。
而且最搞心态的是,React 团队在修复那个 DoS 漏洞时,第一次发的补丁还不完整,随后又补了一刀(CVE-2025-67779)。
也就是说,如果你在 12 月 12 号手快更新了,恭喜你,你还得再更一次。
发生了什么?
简单来说,安全研究人员试图绕过上周的修复方案,结果发现了新的攻击路径。
这次受影响的核心包依然是:
react-server-dom-webpackreact-server-dom-parcelreact-server-dom-turbopack
这就意味着,所有基于 RSC 的框架(Next.js, Waku, Parcel 等)都未能幸免。
1. 拒绝服务 (DoS) - 高危
CVE 编号:CVE-2025-55184, CVE-2025-67779
评分:7.5 (High)
攻击者可以发送一个精心构造的 HTTP 请求给你的 Server Function。当 React 试图反序列化这个请求时,会陷入死循环。
后果就是服务器进程挂起,CPU 飙升,直接卡死。即使你的应用没有显式使用 Server Functions,只要开启了 RSC 支持,就可能中招。
这就是那个 "修了但没完全修好" 的漏洞。官方第一次发布修复后,发现覆盖不全,于是又追加了 CVE-2025-67779。
2. 源码泄露 - 中危
CVE 编号:CVE-2025-55183
评分:5.3 (Medium)
这个漏洞听起来有点吓人。攻击者通过特殊请求,可能让 Server Function 返回它自己的源代码。
如果你的代码写得比较 "耿直",比如把 API Key 硬编码在函数里:
'use server'; export async function serverFunction(name) { // 危险!如果源码泄露,这个 KEY 就裸奔了 const conn = db.createConnection('SUPER_SECRET_KEY'); // ... }那么攻击者就能直接拿到你的密钥。不过,如果你是按规范使用process.env.SECRET_KEY,那通常是安全的,因为泄露的是源码字符串,而不是运行时的环境变量值。
哪些版本受影响?
基本上,只要你用的是 React 19 的相关 RSC 组件,或者 Next.js 的 App Router,大概率都在射程范围内。
React 一爆,Next.js 也中招。
Next.js 官方给出了详细的受影响版本列表(从 13.3 到最新的 16.x Canary 全部中招):
怎么解决?(这次要看仔细了)
没有任何变通方案 (Workaround),必须升级。
请务必检查你的package.json,确保锁定的版本是最新修复版。
Next.js 用户
Next.js 官方非常贴心地提供了一个自动修复工具(大概也是怕大家更错版本):
npx fix-react2shell-next如果你想手动升级,请对照以下安全版本号:
Next.js 14.x-> 升级到
14.2.35Next.js 15.0.x-> 升级到
15.0.7Next.js 15.1.x-> 升级到
15.1.11Next.js 15.2.x-> 升级到
15.2.8Next.js 15.3.x-> 升级到
15.3.8Next.js 15.4.x-> 升级到
15.4.10Next.js 15.5.x-> 升级到
15.5.9Next.js 16.0.x-> 升级到
16.0.10
其他框架
如果你使用的是 Waku, Parcel 或其他 RSC 框架,请直接检查react-server-dom-*的版本。
安全版本如下:
19.0.319.1.419.2.3
注意:19.0.2,19.1.3,19.2.2这些版本是不安全的(就是前面说的那个不完整的修复)。
短短两周,React Server Components 经历了两次大考。
虽然大家嘴上喊着 "毁灭吧",但客观来说,这也侧面说明 RSC 的生态正在经受高强度的安全审计。Log4j 当年爆雷后也是接二连三地出补丁,这是软件工程的常态。
对于开发者来说,现在唯一能做的就是检查你的生产服务,立刻、马上、去升级你的生产环境。
参考资料:
React Blog: Denial of Service and Source Code Exposure
Next.js Security Update: December 11, 2025