React与Next.js高危漏洞:React2Shell允许远程代码执行

安全研究人员披露了React和Next.js中一个最高严重性(10分)的远程代码执行漏洞“React2Shell”,源于服务器组件协议的不安全反序列化,影响大量云环境应用。文章提供了受影响版本、修复建议和技术细节分析。

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#runInThisContextchild_process#execfs#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 万次

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计