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.1、19.1.2 和 19.2.1 版本中引入。如果您正在使用上述任何包,请立即升级到任何已修复的版本。

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

受影响的框架和打包工具

一些 React 框架和打包工具依赖、具有对等依赖关系或包含了易受攻击的 React 包。以下 React 框架和打包工具受到影响:next、react-router、waku、@parcel/rsc、@vitejs/plugin-rsc 和 rwsdk。

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

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

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

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

漏洞概述

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 发现、报告并帮助修复此漏洞。

相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰4 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万4 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝4 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋4 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁4 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
汉堡大王95274 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大4 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师4 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端
沙蒿同学4 天前
我用 Go 搭了一条 AI Agent 流水线:从 1 张商品图到一整套淘宝详情页
前端·javascript·后端