博客 / 詳情

返回

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 版本中:

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

需要立即採取行動

修復已在 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

所有用户應升級到其發佈線中的最新修補版本:

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 版本:

npm install next@14

有關更多信息,請參閲 Next.js changelog。

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

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

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

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 docs。

Waku

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

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

有關更多遷移説明,請參閲 Waku announcement。

@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

時間線

  • 11月29日:Lachlan Davidson 通過 Meta Bug Bounty 報告了安全漏洞。
  • 11月30日:Meta 安全研究人員確認並開始與 React 團隊合作修復。
  • 12月1日:創建了修復程序,React 團隊開始與受影響的託管服務提供商和開源項目合作,驗證修復、實施緩解措施並推出修復。
  • 12月3日:修復程序發佈到 npm,並公開披露為 CVE-2025-55182。

致謝

感謝 Lachlan Davidson 發現、報告並幫助修復此漏洞。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.