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

相关推荐
负责的蛋挞15 分钟前
异步HttpModule的实现方式
java·服务器·前端
丹宇码农3 小时前
把 HLS 字幕玩出花:zwPlayer 如何让 M3U8 视频支持全文搜索、翻译与码率自适应
前端·javascript·音视频·hls·视频播放器
2501_943782353 小时前
【共创季稿事节】猜数字游戏:二分法思维与交互式反馈
前端·游戏·microsoft·harmonyos·鸿蒙·鸿蒙系统
GV191rLvq3 小时前
基于Socket实现的最简单的Web服务器【ASP.NET原理分析】
服务器·前端·asp.net
吠品3 小时前
LangChain 里 tool_call_id 为空?一次 MCP 工具集成的排查记录
前端
微信开发api-视频号协议4 小时前
企业微信二次开发中的文件系统设计:媒体资源、临时文件与业务附件
前端·微信·企业微信·媒体·ipad·微信开放平台
柒和远方4 小时前
Phase 7.4 学习博客:为什么多 API 项目需要 Swagger / OpenAPI
前端·后端·架构
张龙6874 小时前
拼多多开放平台对接踩坑实录:从 CLIENT_ID 配置到 MD5 签名算法的完整填坑指南
前端
GuWenyue4 小时前
提示词彻底过时?一套上下文工程方案,3步让LLM落地生产,代码直接复用
前端·javascript·人工智能