Please enable Javascript to view the contents

【IT档案馆】Next.js React Server Components的重大安全漏洞

 ·  ☕ 6 分钟

React Server Components CVSS 10.0 重大安全漏洞概述

2025年12月3日,React官方发布公告,揭露了React Server Components(RSC)中的一个严重安全漏洞 CVE-2025-55182(CVSS 10.0 级别)。该漏洞可能允许恶意攻击者通过精心构造的RSC请求,执行未授权的代码,从而危及服务器和用户数据的安全。

Critical Security Vulnerability in React Server Components – React

看到公告之后,特意查了下CVSS 10.0 的安全漏洞级别是:

严重(Critical),代表着最高级别的风险,意味着漏洞极其危险,可能导致远程代码执行、数据泄露等严重后果,通常是需要立即修复的首要任务,例如著名的 Log4Shell 漏洞 (CVE-2021-44228) 及其后续版本就是 10.0 级别。 

CVSS 评分等级一览

CVSS(Common Vulnerability Scoring System,通用漏洞评分系统)是一种用于评估计算机系统中安全漏洞严重程度的标准化方法。CVSS评分范围从0.0到10.0,数值越高表示漏洞越严重。以下是CVSS评分等级的划分:

  • 严重 (Critical): 9.0 - 10.0
  • 高危 (High): 7.0 - 8.9
  • 中危 (Medium): 4.0 - 6.9
  • 低危 (Low): 0.1 - 3.9
  • 无 (None): 0.0 

CVSS 10.0 漏洞的特点 

  • 最高风险:表示漏洞的危害性达到顶峰。
  • 影响巨大:通常是未授权远程代码执行 (RCE),允许攻击者在目标系统上执行任意代码。
  • 易于利用:可能不需要身份验证(无需鉴权)且不需要用户交互。
  • 迫切修复:由于其破坏性,是安全修复的最高优先级。 

中招案例

照理说,官方公告发布后,相关框架和包应该会迅速更新以修复漏洞。但现实中,仍有不少开发者和企业因为种种原因未能及时升级。反而是黑客们利用这一时间窗口,发动攻击,导致中招案例频出。

Dify

受 CVE-2025-55182 漏洞影响,在对应版本的 React 或者 Next.js 使用了 React Server Components 的均存在漏洞。

Dify 项目使用了对应版本的前端框架,可直接获取系统权限,目前网上已有黑产团队批量攻击公网 Dify ,建议升级到最新版。

升级包: https://github.com/langgenius/dify/releases/tag/1.10.1-fix.1

服务器被用来挖矿

字幕工具箱 与 影视导航

我最近更新比较多的两个项目,分别是 字幕工具箱i8K影视导航,都受到了影响。

无法部署

这两个项目都部署在Netlify上,我这两个项目都是Next.js 15.2.3版本,受到了影响。

Netlify’s response to the critical React security vulnerability

当然,Vercel也发布了类似的公告:

React2Shell Security Bulletin | Vercel Knowledge Base

于是我就使用了Next.js官方推荐命令npx fix-react2shell-next,自动修复了这个漏洞。

其实就是升级了Next.js的版本。

Next.js自动修复React2Shell漏洞

漏洞复现

漏洞事件核心信息

项目 详细说明
漏洞编号 CVE-2025-55182注意:另一编号CVE-2025-66478(针对Next.js)已被官方拒绝,是同一漏洞的重复。
严重等级 CVSS 10.0(最高危),意味着漏洞极易被利用且影响巨大。
漏洞本质 存在于React Server Components (RSC) “Flight”协议中的不安全反序列化问题,导致服务器端原型污染,最终允许远程代码执行。
攻击方式 攻击者无需任何认证,仅需向Server Function端点发送一个特制的HTTP请求即可利用。
已公开利用 已有公开的概念验证(PoC)利用代码。自2025年12月3日起,安全公司已观测到全球范围的大规模扫描和攻击尝试

受影响的范围与版本

你的应用仅在使用React Server Components (RSC) 或相关框架的服务器端功能时才会受到影响。纯前端React应用不受影响。

1. 直接受影响的React包

受影响的是以下 react-server-dom-* 包的具体版本:

包名 受影响版本 已修复的安全版本
react-server-dom-webpack 19.0.0, 19.1.0, 19.1.1, 19.2.0 19.0.1, 19.1.2, 19.2.1
react-server-dom-parcel 同上 同上
react-server-dom-turbopack 同上 同上

2. 受影响的主要框架

由于集成了上述React包,以下框架的特定版本也受影响,你需要将它们升级到对应的安全版本:

  • Next.js (App Router)

    • 受影响版本:所有15.x、16.x稳定版,以及14.3.0-canary.77及之后的Canary版本。
    • 安全版本
      • 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7
      • 16.0.7
      • 如果正在使用Next.js 14 Canary版本,应降级至稳定的 14.x 版本
  • 其他框架/工具:包括React Router(RSC预览)、Vite RSC插件、Parcel RSC插件、Redwood SDK、Waku等。请检查其官方通告并升级至最新版。

3. 如何判断你是否受影响

  • 检查依赖:在项目根目录运行 npm list react-server-dom-webpack(或-parcel/-turbopack)查看版本。
  • 使用审计工具:运行 npm audit,该命令可以识别此漏洞。
  • 云安全扫描:如果你使用阿里云,其“云安全中心”已支持对该漏洞的无代理检测和镜像扫描。

立即防护与修复措施

修复此漏洞的唯一根本方法是立即升级到安全版本。如果无法立即升级,必须采取严格的缓解措施。

首要行动:升级依赖

根据你的技术栈,执行对应的升级命令:

  1. 更新React核心包

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

    (根据你的打包工具,将 webpack 替换为 parcelturbopack

  2. 更新Next.js

    1
    2
    
    # 根据你的主版本号选择对应的命令,例如对于15.1.x版本:
    npm install next@15.1.9
    
  3. 更新后务必

    • 重新构建并部署你的应用。
    • 使用 npm explain react-server-dom-webpack 等命令验证已安装安全版本。

如果无法立即升级:紧急缓解措施

  1. 严格网络隔离:立即通过防火墙、安全组或云平台网络策略,严格限制对应用服务器的访问,仅允许必要的、可信任的源IP或内部服务访问。
  2. 启用WAF防护:如果使用Web应用防火墙(如阿里云WAF),确保已开启针对此漏洞的防护规则(例如规则ID 901017)。
  3. 加强监控:密切监控服务器日志,警惕以下异常活动:
    • 对RSC端点的异常请求。
    • 服务器上出现未经授权的进程或脚本(如XMRig挖矿程序)。
    • 异常的文件读取或系统命令执行尝试。

漏洞技术细节

该漏洞的根源在于 react-server-dom-* 包中负责解析客户端请求的 requireModule 函数。在修复前,该函数通过 moduleExports[metadata[NAME]] 的方式访问模块导出,没有验证被访问的属性是否为模块自身的属性(例如使用 hasOwnProperty 进行检查)。

这使得攻击者可以通过精心构造的请求,让服务器代码访问到模块从JavaScript原型链上继承下来的危险内置方法(例如 child_process.execSyncvm.runInThisContext),从而实现远程代码执行。React团队提交的修复代码正是增加了 hasOwnProperty 检查来堵住这个缺口。

总而言之,CVE-2025-55182是一个影响广泛、已被公开利用的最高危漏洞。最关键的防护手段是立即升级所有受影响依赖到安全版本

总结

React Server Components (RSC) 是 React 演进的重要一步,与 Next.js 框架紧密结合,推动了全栈 React 架构的革新。

Next.js 技术栈在现代 Web 开发中占据重要地位,广泛应用于构建高性能、可扩展的 Web 应用。

Vibe Coding 时代,不仅是应用开发者不会Review代码,连框架维护者也难以全面审查每一行代码。此次 CVE-2025-55182 漏洞的发现,再次提醒我们:开源生态中的安全风险无处不在

参考资料

分享

码农真经
作者
码农真经
Web Developer