React Server Components 中的严重安全漏洞

本文翻译自原文地址

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 框架和打包工具依赖、具有对等依赖关系或包含了易受攻击的 React 包。以下 React 框架和打包工具受到影响:nextreact-routerwaku@parcel/rsc@vitejs/plugin-rscrwsdk

我们将在升级说明可用时更新此文章。

托管服务提供商的缓解措施

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

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

漏洞概述

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

未经身份验证的攻击者可以构造恶意 HTTP 请求到任何 Server Function 端点,当 React 反序列化时,可以在服务器上实现远程代码执行。漏洞的进一步详细信息将在修复完成部署后提供。

更新说明

Next.js

所有用户应升级到其发布线中的最新修补版本:

shell 复制代码
npm install next@15.0.5   // for 15.0.x
npm install next@15.1.9   // for 15.1.x
npm install next@15.2.6   // for 15.2.x
npm install next@15.3.6   // for 15.3.x
npm install next@15.4.8   // for 15.4.x
npm install next@15.5.7   // for 15.5.x
npm install next@16.0.7   // for 16.0.x

如果您使用的是 Next.js 14.3.0-canary.77 或更新的 canary 版本,请降级到最新的稳定 14.x 版本:

shell 复制代码
npm install next@14

有关更多信息,请参阅 Next.js changelog

React Router

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

shell 复制代码
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

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

shell 复制代码
npm install react@latest react-dom@latest react-server-dom-webpack@latest

Redwood SDK

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

对于最新的 beta 版本:

shell 复制代码
npm install rwsdk@latest

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

shell 复制代码
npm install react@latest react-dom@latest react-server-dom-webpack@latest

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

Waku

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

shell 复制代码
npm install react@latest react-dom@latest react-server-dom-webpack@latest waku@latest

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

@vitejs/plugin-rsc

升级到最新的 RSC 插件:

shell 复制代码
npm install react@latest react-dom@latest @vitejs/plugin-rsc@latest

react-server-dom-parcel

更新到最新版本:

shell 复制代码
npm install react@latest react-dom@latest react-server-dom-parcel@latest

react-server-dom-turbopack

更新到最新版本:

shell 复制代码
npm install react@latest react-dom@latest react-server-dom-turbopack@latest

react-server-dom-webpack

更新到最新版本:

shell 复制代码
npm install react@latest react-dom@latest react-server-dom-webpack@latest

时间线

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

致谢

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

相关推荐
sg_knight44 分钟前
SSE 技术实现前后端实时数据同步
java·前端·spring boot·spring·web·sse·数据同步
苹果电脑的鑫鑫1 小时前
el-select下拉菜单如何可以手输入内容
前端·vue.js·elementui
脾气有点小暴1 小时前
ES6(ECMAScript 2015)基本语法全解析
前端·javascript
前端fighter1 小时前
全栈项目:闲置二手交易系统(二)
前端·vue.js·node.js
sztian681 小时前
JavaScript---BOM对象、JS执行机制、location对象
开发语言·前端·javascript
潘小安1 小时前
【译】别再想着 Figma 了,AI 才是新的设计工具
前端·ai编程·weui
少寒1 小时前
async/await:异步编程的优雅解决方案
前端·javascript
华仔啊1 小时前
CSS的clamp()函数:一行代码让网页自适应如此简单
前端·css