React Server Components 中的严重安全漏洞

2025 年 12 月 3 日,由 The React Team 发布


React Server Components 中存在一个未认证的远程代码执行漏洞。

我们建议立即升级。


11 月 29 日,Lachlan Davidson 报告了 React 中的一个安全漏洞,该漏洞利用 React 在解码发送到 React Server Function 端点的载荷时存在的缺陷,从而允许未认证的远程代码执行。

即使你的应用未实现任何 React Server Function 端点,如果你的应用支持 React Server Components,它仍可能存在漏洞。

该漏洞已作为 CVE-2025-55182 公开披露,CVSS 评分为 10.0。

以下版本中存在该漏洞:19.0、19.1.0、19.1.1 和 19.2.0,涉及:

需要立即采取的行动

修复已在 19.0.119.1.219.2.1 版本中引入。如果你正在使用上述任意包,请立即升级到任一已修复版本。

如果你的应用中的 React 代码不使用服务器,那么你的应用不受此漏洞影响。如果你的应用不使用支持 React Server Components 的框架、打包工具或打包工具插件,那么你的应用不受此漏洞影响。

受影响的框架和打包工具

某些 React 框架和打包工具依赖、具有 peer 依赖,或包含了存在漏洞的 React 包。受影响的 React 框架和打包工具如下:nextreact-routerwaku@parcel/rsc@vitejs/plugin-rscrwsdk

有关如何升级到这些补丁,请参见下面的 更新说明

托管服务提供商缓解措施

我们已与多家托管服务提供商合作,应用临时缓解措施。

你不应依赖这些措施来保护你的应用,仍应立即更新。

漏洞概述

React Server Functions 允许客户端调用服务器上的函数。React 提供集成点和工具,供框架和打包工具使用,以帮助 React 代码同时运行在客户端和服务器上。React 会将客户端上的请求转换为 HTTP 请求并转发到服务器。在服务器端,React 会将 HTTP 请求转换为函数调用,并将所需数据返回给客户端。

攻击者无需认证即可构造一个恶意 HTTP 请求,发送到任意 Server Function 端点;当 React 对其进行反序列化时,可在服务器上实现远程代码执行。关于该漏洞的更多细节将在修复全面完成后提供。

更新说明

Note

这些说明已更新,以包含新的漏洞:

更多信息请参阅 后续博文


更新于 2026 年 1 月 26 日。

Next.js

所有用户都应升级到其发行分支中的最新补丁版本:

npm install next@14.2.35 // 适用于 13.3.x、13.4.x、13.5.x、14.x
npm install next@15.0.8 // 适用于 15.0.x
npm install next@15.1.12 // 适用于 15.1.x
npm install next@15.2.9 // 适用于 15.2.x
npm install next@15.3.9 // 适用于 15.3.x
npm install next@15.4.11 // 适用于 15.4.x
npm install next@15.5.10 // 适用于 15.5.x
npm install next@16.0.11 // 适用于 16.0.x
npm install next@16.1.5 // 适用于 16.1.x

npm install next@15.6.0-canary.60 // 适用于 15.x canary 版本
npm install next@16.1.0-canary.19 // 适用于 16.x canary 版本

15.0.8、15.1.12、15.2.9、15.3.9、15.4.10、15.5.10、15.6.0-canary.61、16.0.11、16.1.5

如果你使用的是 Next.js 13 的 13.3 或更高版本(13.3.x13.4.x13.5.x),请升级到 14.2.35 版本。

如果你使用的是 next@14.3.0-canary.77 或更高的 canary 版本,请降级到最新的稳定版 14.x:

npm install next@14

有关最新的更新说明,请参阅 Next.js 博客,有关更多信息请参阅 之前的更新日志

React Router

如果你正在使用 React Router 的不稳定 RSC API,并且以下 package.json 依赖存在,则应升级它们:

npm install react@latest
npm install react-dom@latest
npm install react-server-dom-parcel@latest
npm install react-server-dom-webpack@latest
npm install @vitejs/plugin-rsc@latest

Expo

要了解更多关于缓解措施的信息,请阅读 expo.dev/changelog 上的文章。

Redwood SDK

确保你使用的是 rwsdk>=1.0.0-alpha.0

对于最新的 beta 版本:

npm install rwsdk@latest

升级到最新的 react-server-dom-webpack

npm install react@latest react-dom@latest react-server-dom-webpack@latest

有关更多迁移说明,请参阅 Redwood 文档

Waku

升级到最新的 react-server-dom-webpack

npm install react@latest react-dom@latest react-server-dom-webpack@latest waku@latest

有关更多迁移说明,请参阅 Waku 公告

@vitejs/plugin-rsc

升级到最新的 RSC 插件:

npm install react@latest react-dom@latest @vitejs/plugin-rsc@latest

react-server-dom-parcel

更新到最新版本:

npm install react@latest react-dom@latest react-server-dom-parcel@latest

react-server-dom-turbopack

更新到最新版本:

npm install react@latest react-dom@latest react-server-dom-turbopack@latest

react-server-dom-webpack

更新到最新版本:

npm install react@latest react-dom@latest react-server-dom-webpack@latest

React Native

对于未使用 monorepo 或 react-dom 的 React Native 用户,你的 react 版本应在 package.json 中固定,无需额外步骤。

如果你在 monorepo 中使用 React Native,并且安装了以下受影响的包,则应仅更新这些包:

  • react-server-dom-webpack
  • react-server-dom-parcel
  • react-server-dom-turbopack

这是为缓解该安全公告所必需的,但你不需要更新 reactreact-dom,因此这不会导致 React Native 中的版本不匹配错误。

有关更多信息,请参阅 此问题

时间线

  • 11 月 29 日:Lachlan Davidson 通过 Meta Bug Bounty 报告了该安全漏洞。
  • 11 月 30 日:Meta 安全研究人员确认了该漏洞,并开始与 React 团队合作修复。
  • 12 月 1 日:修复方案已创建,React 团队开始与受影响的托管服务提供商和开源项目合作,以验证修复、实施缓解措施并部署修复
  • 12 月 3 日:修复已发布到 npm,并作为 CVE-2025-55182 向公众披露。

归因

感谢 Lachlan Davidson 发现、报告并协助修复此漏洞。