摘要
React与Next.js中存在一个关键的React Server Components(RSC)安全漏洞,远程攻击者能够在无需登录的情况下,在服务器上执行恶意代码。该漏洞影响了React的“Flight”协议,该协议用于在浏览器和服务器之间传输数据。
漏洞详情
这些漏洞被追踪为CVE-2025-55182(React)和CVE-2025-66478(Next.js),均被评为最高严重等级,允许未经认证的远程代码执行(RCE)。
漏洞如何实现远程代码执行
在许多情况下,攻击者只需要向存在漏洞的服务器发送一个特制的HTTP请求即可进行利用。核心问题在于RSC“Flight”载荷处理过程中的不安全反序列化。 当服务器接收到恶意载荷时,无法正确验证其结构。因此,攻击者控制的数据可以影响服务器的执行流程,并导致特权JavaScript代码运行。
受影响产品及版本
| CVE ID | 产品 | 受影响版本 | CVSS评分 |
|---|---|---|---|
| CVE-2025-55182 | react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 10.0 |
| CVE-2025-55182 | react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 10.0 |
| CVE-2025-55182 | react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 10.0 |
| CVE-2025-66478 | Next.js | 14.3.0-canary, 15.x, 16.x(App Router) | 10.0 |
风险之所以严重,是因为默认配置即存在漏洞。一个使用create-next-app创建且为生产环境构建的标准Next.js应用程序,即使未做任何额外更改,仍然可能受到攻击。
影响范围与修复
测试表明该漏洞利用非常可靠,在实验室条件下成功率接近100%。Wiz Research的报告指出,39%的云环境中存在受影响的React或Next.js实例。
Next.js出现在他们扫描的69%的环境中,且其中大多数都是面向公众的应用程序。这意味着,如果未打补丁,大量暴露在互联网上的系统可能面临风险。
React已在react-server-dom包的版本19.0.1、19.1.2和19.2.1中发布修复。
Next.js也已在其支持的各个分支中发布了加固版本。
任何包含受影响React服务器实现的框架或打包工具,例如React Router RSC、Vite和Parcel RSC插件、RedwoodSDK以及Waku,都可能受到影响。
建议与缓解措施
安全团队被敦促立即升级React、Next.js以及所有相关的支持RSC的依赖项。 托管提供商提供的缓解措施可能降低风险,但不能替代打补丁。在系统完全更新之前,任何暴露在外的React Server Component部署都应被视为存在高风险。