Critical React, Next.js flaw lets hackers execute code on servers
December 4, 2025 10:11 AM
一个最高严重性漏洞,被命名为“React2Shell”,存在于 React 服务器组件(RSC)的“Flight”协议中,允许在未经身份验证的情况下对 React 和 Next.js 应用程序进行远程代码执行。
该安全问题源于不安全的反序列化。其严重性评分为 10/10,并为 React 分配了标识符 CVE-2025-55182,为 Next.js 分配了 CVE-2025-66478(该 CVE 在国家漏洞数据库中已被拒绝)。
安全研究员 Lachlan Davidson 发现了这个缺陷,并于 11 月 29 日报告给了 React。他发现攻击者可以通过向 React 服务器函数端点发送特制的 HTTP 请求来实现远程代码执行(RCE)。
“即使你的应用程序没有实现任何 React 服务器函数端点,如果你的应用程序支持 React 服务器组件 [RSC],它可能仍然容易受到攻击,” React 的安全公告警告说。
以下软件包在其默认配置中受到影响:
- react-server-dom-parcel
- react-server-dom-turbopack
- 以及 react-server-dom-webpack
React 是一个用于构建用户界面的开源 JavaScript 库,由 Meta 维护,被各种规模的组织广泛用于前端 Web 开发。 Next.js 由 Vercel 维护,是一个构建在 React 之上的框架,增加了服务器端渲染、路由和 API 端点功能。
这两种解决方案都广泛存在于云环境中,通过前端应用程序帮助更快、更容易地扩展和部署架构。
Wiz 云安全平台的研究人员警告说,该漏洞易于利用,并且存在于受影响软件包的默认配置中。
影响和修复
根据 React 的说法,该漏洞存在于版本 19.0、19.1.0、19.1.1 和 19.2.0 中。Next.js 在从 14.3.0-canary.77 开始的实验性 Canary 版本,以及 15.x 和 16.x 分支的所有低于已修复版本的版本中受到影响。
该缺陷存在于 React 服务器组件(RSC)使用的 ‘react-server’ 包中,但 Next.js 通过其对 RSC “Flight” 协议的实现继承了它。
Wiz 的研究人员表示,在他们可见的所有云环境中,有 39% 包含运行易受 CVE-2025-55182、CVE-2025-66478 或两者影响的 Next.js 或 React 实例。
同样的漏洞很可能存在于其他实现 React Server 的库中,包括 Vite RSC 插件、Parcel RSC 插件、React Router RSC 预览版、RedwoodSDK 和 Waku。
软件供应链安全公司 Endor Labs 解释说,React2Shell “是一个逻辑上不安全的反序列化漏洞,服务器未能正确验证传入 RSC 负载的结构。”
当从攻击者那里接收到畸形数据时,会发生验证失败,从而导致在服务器的上下文中执行特权 JavaScript 代码。
Davidson 创建了一个 React2Shell 网站,他将在那里发布技术细节。这位研究员还警告说,目前存在一些非真实的概念验证(PoC)漏洞利用。
这些 PoC 会调用 vm#runInThisContext、child_process#exec 和 fs#writeFile 等函数,但研究人员表示,真正的漏洞利用不需要这样做。
Davidson 指出:“只有在您有意识地选择让客户端调用这些函数时,这才可能被利用,而无论如何,这都将是危险的。”
他进一步解释说,这些伪造的 PoC 不适用于 Next.js,因为由于服务器功能列表是自动管理的,这些函数并不存在。
强烈建议开发者应用 React 版本 19.0.1、19.1.2 和 19.2.1,以及 Next.js 版本 15.0.5、15.1.9、15.2.6、15.3.6、15.4.8、15.5.7 和 16.0.7 中提供的修复程序。
组织应审核其环境,以确定是否使用了易受攻击的版本,并采取适当的行动来降低风险。
这两种解决方案的受欢迎程度体现在每周的下载量上,React 在 Node Package Manager(NPM)上的下载量为 5580 万次,而 Next.js 在同一平台上的下载量为 1670 万次。