严重:新 React Server Component 漏洞 - 拒绝服务与源代码泄露
Source: Dev.to

提醒一下,React 开发者!React 团队刚刚宣布了两个新的 React Server Components 漏洞,可能导致服务拒绝(DoS)或泄露源码。如果你在生产环境中使用 React Server Components,请立即修补你的应用。
本文涵盖了 React 的通用漏洞以及对 Next.js 的具体影响。
漏洞概述(React)
这两个漏洞分别是:
- 服务拒绝(DoS) – 高危(CVSS 7.5,CVE‑2025‑55184)
- 源码泄露 – 中危(CVSS 5.3,CVE‑2025‑55183)
服务拒绝(DoS)
精心构造的 HTTP 请求可以在服务器上触发无限循环,导致服务器失去响应,从而对用户造成服务拒绝。这是一个高危漏洞,需要立即处理。
源码泄露
该漏洞允许恶意攻击者可能访问你的 Server Functions 源码。通过发送特制的 HTTP 请求,他们能够泄露包括硬编码密钥在内的敏感信息。虽然被归类为中危,但影响可能相当严重。
我是否受影响?(React)
如果你使用 React Server Components,则受影响。这包括以下框架和打包工具:
- Next.js
- react‑router
- Waku
@parcel/rsc@vite/rsc-plugin- rwsdk
如果你没有使用服务器或你的应用不支持 React Server Components,则不受影响。
修复方案(React)
React 团队已发布以下包的修补版本:
react-server-dom-webpackreact-server-dom-parcelreact-server-dom-turbopack
升级到最新版本(19.0.3、19.1.4、19.2.3)即可修补这些漏洞。
对于 React Native 开发者,React 团队提供了在 monorepo 中更新受影响包的具体说明。
现在该怎么做(React)
- 检查是否受影响:确认你的应用是否使用了 React Server Components。
- 升级依赖:如果受影响,升级
react-server-dom-*包到最新的修补版本。 - 审计代码:即使已修补,也请审计代码中是否存在硬编码的密钥,并将其迁移到安全位置。
Next.js 专属信息(更新)
Next.js 团队已发布安全更新,解决了 React Server Component 漏洞对使用 App Router 的应用产生的下游影响。
重要提示: 最初针对服务拒绝漏洞(CVE‑2025‑55184)的修复不完整。完整修复已在 CVE‑2025‑67779 下发布。如果你之前已经升级过,需要再次升级到最新的修补版本。
受影响及已修复的 Next.js 版本
| 发布线 | 修复版本 |
|---|---|
| >=13.3 | 14.2.35 |
| 14.x | 14.2.35 |
| 15.0.x | 15.0.7 |
| 15.1.x | 15.1.11 |
| 15.2.x | 15.2.8 |
| 15.3.x | 15.3.8 |
| 15.4.x | 15.4.10 |
| 15.5.x | 15.5.9 |
| 15.x canary | 15.6.0‑canary.60 |
| 16.0.x | 16.0.10 |
| 16.x canary | 16.1.0‑canary.19 |
Next.js 用户的必需操作
所有用户都应升级到各自发布线的最新修补版本。暂无变通方案。
你可以使用 npm 或 yarn 安装修补版本,例如:
npm install next@14.2.35 # 适用于 14.x
npm install next@15.0.7 # 适用于 15.0.x
npm install next@15.1.11 # 适用于 15.1.x
npm install next@15.2.8 # 适用于 15.2.x
npm install next@15.3.8 # 适用于 15.3.x
npm install next@15.4.10 # 适用于 15.4.x
npm install next@15.5.9 # 适用于 15.5.x
npm install next@16.0.10 # 适用于 16.0.x
npm install next@15.6.0-canary.60 # 适用于 15.x canary 发行版
npm install next@16.1.0-canary.19 # 适用于 16.x canary 发行版
或者,你可以使用交互式工具 fix-react2shell-next 来检查版本并执行升级:
npx fix-react2shell-next