React2Shell漏洞:React服务器组件中的严重未授权远程代码执行漏洞解析

本文详细分析了CVE-2025-55182(React2Shell)漏洞,这是一个在React 19服务器组件中发现的严重安全漏洞,CVSS评分高达10.0。攻击者可利用此漏洞在未授权情况下远程执行任意代码,影响大量使用React的网站和框架。

CVE-2025-55182:严重漏洞“React2Shell”允许未授权远程代码执行

Cybereason咨询团队正在持续进行调查。请关注Cybereason博客获取更新。

关键要点

  • 2025年12月3日,在React中发现了一个严重漏洞,可能导致未经身份验证的远程代码执行。
  • Cybereason专家认为该漏洞极易被利用。
  • 此问题源于服务器错误地信任用户提供的标识符,并且未能进行有效验证。
  • 初步可用的概念验证代码已公开,并被归因于中国威胁行为者。
  • 如果在补丁发布日(2025年12月3日)之前,服务器曾暴露于公共互联网,请检查是否存在被入侵的迹象。
  • 请更新至React的最新修补版本,并查看安全公告以获取更多建议。

漏洞概述

一个被命名为“React2Shell”的严重漏洞,编号为CVE-2025-55182,CVSS评分为10.0。该漏洞最近在React的服务器组件中发现,可能导致预认证的远程代码执行。如果被利用,此漏洞可能使未经身份验证的威胁行为者在运行易受攻击的React 19 RSC逻辑的服务器上执行任意代码。React是一个用于构建用户界面的JavaScript库,被广泛应用于许多日常网站。由于其广泛使用,它已悄然成为现代网站所依赖的数字基础的一部分。

威胁行为者可以利用此漏洞窃取机密信息、向环境内部渗透、创建持久化机制(如Webshell)或部署次要载荷。被攻陷的RSC端点将成为威胁行为者的初始入侵向量,并可能允许横向移动和完全的环境入侵。

安全研究人员强调,利用此漏洞非常简单。在测试中,其利用成功率接近100%,并且仅需要一个精心构造的HTTP请求,无需任何用户交互。攻击可以通过互联网由远程威胁行为者执行,使其成为一个极具吸引力的初始入侵载体。该问题源于RSC“Flight”协议中的不安全反序列化,允许威胁行为者劫持模块解析并在后端调用特权函数。

受影响范围和影响

此漏洞影响React 19.0.0至19.2.0版本,以及任何捆绑了RSC的框架,包括Next.js 15和16。利用方式简单、可靠,仅需一个精心构造的HTTP请求。使用这些软件包的框架会继承此缺陷。

漏洞源于React服务端对RSC操作元数据的处理。在打补丁之前,服务器错误地信任用户提供的标识符,并且未能验证所请求的函数是有效的导出服务器操作。通过滥用此逻辑,威胁行为者可以指示服务器加载内部Node.js模块并执行child_process.execSync等函数。截至2025年12月3日,GitHub和其他相关研究网站上已公开的概念验证利用代码表明,攻击者可以通过模拟合法RSC调用的、被操纵的多部分表单提交直接执行操作系统命令。一旦执行,威胁行为者提供的命令将以服务器进程的权限运行。

概念验证与威胁活动

在安全研究员maple3142发布了一个针对至少Next.js 16.0.6版本中React服务器组件、可实现未授权远程代码执行的基于HTTP的载荷之后,针对CVE-2025-55182的可行概念验证利用代码现已公开,证实该问题实际上可被利用,而不仅仅是理论上的。对此漏洞利用的研究将早期活动归因于多个与中国国家关联的威胁行为者,包括EARTH LAMIA和JACKPOT PANDA。他们在12月3日公开披露后的数小时内就开始探测和利用React2Shell漏洞,尽管AWS托管服务本身并未受到直接影响。

Cybereason概念验证测试

Next.js是一个全栈React框架,在开发和生成环境中都严重依赖Node.js作为其底层的JavaScript运行时。合法的node.exe进程负责在Next.js应用程序中执行服务端JavaScript代码,包括页面渲染、API路由、服务器组件和其他后端功能。在此漏洞的背景下,攻击者可以利用该应用程序在Node.js环境中实现任意代码执行。我们在受控的沙箱环境中验证了概念验证代码,并确认利用成功导致node.exe进程生成一个shell应用程序。攻击者可以利用此shell在被入侵的服务器上进行侦察和攻击后活动。

如果您未打补丁的服务器在2025年12月3日之前曾暴露于公共互联网,请调查是否存在被入侵的迹象。尽管大规模利用通常发生在PoC代码发布之后,但复杂的威胁行为者可以立即开发私有的利用程序。

建议

以下是我们的数字取证与事件响应团队的关键建议:

  • 审查React的安全公告并监控更新:及时关注官方发布的安全更新和指导。
  • 立即更新软件
    • 更新React至19.0.1、19.1.2或19.2.1版本,或更新至捆绑了修补后RSC组件的框架版本。
    • 安装React Router、Expo/React Native、RedwoodJS、Waku、Vite RSC插件、Parcel RSC等框架的最新更新。许多情况下,只需将React运行时升级到19.2.1或应用框架维护者发布的次要更新。
    • 将Next.js更新到您所在分支的最新修补版本(例如15.0.5、15.1.9或16.0.7)。使用canary频道的Next.js用户应降级到稳定的14.x版本或升级到已修补的稳定版本。
  • 应用临时缓解措施:Web应用防火墙规则等临时缓解措施可以减少暴露风险,但它们不能替代软件更新。
  • 加强监控:组织应监控日志,查找格式错误的RSC操作请求、到RSC端点的意外POST流量或进程执行异常的证据。

我们的团队随时准备回答有关此漏洞的任何问题。请随时通过response@cybereason.com与我们联系。

关于作者

Devon Ackerman, Cybereason全球数字取证与事件响应负责人

Devon Ackerman是Cybereason的全球数字取证与事件响应负责人。他拥有超过15年的网络安全行业经验,专注于数字取证和事件响应。他曾建立、管理并领导大型全球事件响应团队,并处理过数百起事件响应事件,其中包括一些世界上最复杂的案例。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计