一、漏洞背景:React生态的“守门人”失守
2025年React/Next.js生态被曝出两个高危漏洞,其中CVE-2025-55182(CVSS 10.0)因其远程代码执行(RCE)风险成为焦点,而CVE-2025-29927(CVSS 9.1)则因中间件授权绕过引发广泛讨论。这两个漏洞暴露了React Server Components(RSC)和中间件机制中的深层安全隐患,威胁着全球数百万基于Next.js的应用安全。
关键信息概览
漏洞类型:未经身份验证的远程代码执行(RCE)
影响组件:react-server-dom-webpack、react-server-dom-parcel、react-server-dom-turbopack的以下版本:
19.0.0
19.1.0
19.1.1
19.2.0
CVE编号:CVE-2025-55182(CVSS评分10.0,最高危)
修复版本:各包的 19.0.1、19.1.2、19.2.1
披露时间线:
2025-11-29:漏洞由 Lachlan Davidson 报告
2025-12-01:React 团队发布修复并通知相关方
2025-12-03:正式公开并发布 npm 更新
二、CVE-2025-29927:中间件授权绕过的“隐形刺客”
- 漏洞原理
触发条件:攻击者可构造恶意 HTTP 请求发送至 React Server Function 端点,在服务端反序列化时实现远程代码执行。
特殊风险:即使应用未显式实现 Server Function 端点,但只要使用了 React Server Components(RSC),仍可能因依赖链受影响。
Next.js中间件通过x-middleware-subrequest头标识内部递归请求,防止无限循环。然而,攻击者可伪造该头(如middleware:middleware:middleware:middleware:middleware),欺骗框架跳过授权检查,直接访问受保护资源。
- 技术细节
旧版本逻辑:若请求头与中间件路径匹配(如pages/_middleware),则跳过执行。
新版本逻辑:若请求头分割后包含5次中间件路径重复(如src/middleware重复5次),则触发递归限制并跳过中间件。
- 影响范围
Next.js 11.1.415.2.2:所有依赖中间件进行权限校验的应用均受威胁。
典型场景:未授权访问管理后台、绕过CSP安全头、缓存投毒攻击。
需立即采取的行动
升级依赖包:
npm install react@latest react-dom@latest react-server-dom-webpack@latest
注意:若项目未使用服务器或 RSC 相关功能(如纯客户端渲染),则无需升级。
受影响框架与打包工具的升级指南:
均需将 react-server-dom-webpack等包升级至最新版本。
更新 react、react-dom及 RSC 相关依赖至最新版。
升级至对应稳定版(如 next@15.5.7或 next@16.0.7)。
Canary 版本用户需降级至 next@14。
Next.js:
React Router:
其他框架(如 Expo、Redwood SDK、Waku、Vite 插件等):
托管服务商临时缓解措施:
部分服务商已提供临时防护,但仍需尽快更新依赖。
官方通告
https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
此漏洞影响广泛,所有使用 React Server Components 的项目均需立即升级相关依赖。建议开发者排查项目依赖树,确认是否受影响,并严格遵循官方提供的升级路径修复。
漏洞复现步骤(仅用于安全测试)
1.下载服务端程序
2.运行服务端程序
npm install
node --conditions react-server --conditions webpack src/server.js
3.运行攻击脚本
node exploit-rce-v4.js