React与Next.js高危漏洞深度解析:CVE-2025-55182可导致服务器被完全控制

本文详细分析了React与Next.js框架中新发现的严重漏洞CVE-2025-55182(又称React4Shell)。该漏洞源于React服务器组件(RSC)在处理Flight协议数据时的不安全反序列化,CVSS评分高达10分,允许未授权攻击者远程执行代码,可能导致服务器被完全接管。文章阐述了漏洞影响范围、具体技术原理、并提供由官方及各大云服务商给出的紧急修复与缓解措施。

React4Shell漏洞:保护Web服务器免受CVE-2025-55182攻击

基于React和Next.js的数百万个网站包含一个易于利用的漏洞,可能导致服务器被完全接管。如何检查您的服务器是否易受攻击,并保护企业的Web资产?

12月3日,关于协调消除关键漏洞CVE-2025-55182(CVSSv3评分:10)的消息为人所知。该漏洞存在于React服务器组件(RSC)以及一系列衍生项目和框架中:Next.js、React Router RSC预览版、Redwood SDK、Waku,以及RSC插件Vite和Parcel。该漏洞允许任何未经身份验证的攻击者向易受攻击的服务器发送请求并执行任意代码。考虑到包括Airbnb和Netflix在内的数千万网站都是基于React和Next.js构建的,并且在大约39%的云基础设施中发现了易受攻击的组件版本,漏洞被利用的规模可能非常严重。必须立即采取措施保护您的在线服务。

最初,针对Next.js漏洞创建了单独的CVE-2025-66478,但后来被视为重复,因此Next.js的缺陷也属于CVE-2025-55182。

React4Shell漏洞在哪里以及如何起作用?

React是一个流行的JavaScript库,用于创建Web应用程序的用户界面。得益于2020年React 18中出现的RSC组件,部分网页组装工作不是在浏览器中执行,而是在服务器上执行。网页代码可以调用将在服务器上运行的React函数,获取执行结果,并将其插入网页中。这使得一些网站运行得更快——浏览器不需要加载不必要的代码。RSC将应用程序分为服务器组件和客户端组件,前者可以执行服务器操作(数据库查询、访问密钥、复杂计算),而后者则在用户机器上保持交互性。使用一种称为Flight的轻量级、基于HTTP的特殊协议,用于在客户端和服务器之间快速流式传输序列化信息。

CVE-2025-55182存在于处理Flight请求的过程中,更准确地说,在于数据流的不安全反序列化。以下版本的React服务器组件存在漏洞:19.0.0、19.1.0、19.1.1、19.2.0,或者更具体地说,是react-server-dom-parcelreact-server-dom-turbopackreact-server-dom-webpack包。受影响的Next.js版本包括:15.0.4、15.1.8、15.2.5、15.3.5、15.4.7、15.5.6和16.0.6。

要利用此漏洞,攻击者可以向服务器发送一个简单的HTTP请求,甚至在进行任何身份验证和检查之前,该请求就可以在服务器上启动一个具有React权限的进程。

目前还没有关于CVE-2025-55182在野外被利用的数据,但专家一致认为这是可能的,并且很可能规模巨大。Wiz声称其测试的RCE漏洞利用几乎100%可靠。该漏洞利用的原型已在GitHub上提供,因此攻击者很容易采用它并发起大规模攻击。

React最初设计用于创建在浏览器中运行的客户端代码;包含漏洞的服务器端组件相对较新。许多基于旧版本React构建的项目,或者禁用了React服务器组件的项目,不受此漏洞影响。

然而,如果一个项目没有使用服务器端函数,这并不意味着它受到了保护——RSC可能仍然处于活动状态。基于具有默认设置的最新版本React(例如,使用create-next-app构建的Next.js应用程序)构建的网站和服务将存在漏洞。

针对CVE-2025-55182利用的防护措施

更新。

  • React用户应更新至19.0.1、19.1.2或19.2.1版本。
  • Next.js用户应更新至15.1.9、15.2.6、15.3.6、15.4.8、15.5.7或16.0.7版本。
  • 有关React Router、Expo、Redwood SDK、Waku和其他项目更新react-server组件的详细说明,请参阅React博客。

云服务商保护。 主要提供商已为其应用级Web过滤器(WAF)发布了规则,以防止漏洞利用:

  • Akamai(针对App & API Protector用户的规则);
  • AWS(AWS WAF规则已包含在标准集中,但需要手动激活);
  • Cloudflare(保护所有客户,包括免费计划用户。仅在React应用程序的流量通过Cloudflare WAF代理时才有效。专业版或企业版计划的客户应验证规则是否激活);
  • Google Cloud(针对Firebase Hosting和Firebase App Hosting的Cloud Armor规则会自动应用);
  • Vercel(规则自动应用)。

但是,所有提供商都强调,WAF保护只是为计划内的修补争取时间,所有项目中的RSC组件仍需要更新。

保护您自己服务器上的Web服务。 侵入性最小的解决方案是向您的WAF或防火墙应用检测规则以防止利用。大多数供应商已经发布了必要的规则集,但您也可以自己准备——例如,基于我们列出的危险POST请求列表。

如果在您的环境中无法对Web流量进行细粒度分析和过滤,请识别所有RSC(服务器功能端点)可用的服务器,并严格限制对它们的访问。对于内部服务,可以阻止来自所有不可信IP范围的请求;对于公共服务器,可以加强IP信誉过滤和速率限制。

在运行RSC的服务器上安装EPP/EDR代理将提供额外的保护层。它将帮助检测漏洞被利用后react-server行为的异常,并阻止攻击发展。

深入调查。 尽管尚未确认该漏洞在野外被利用的信息,但不能排除它已经发生的可能性。建议研究网络流量和云环境的日志,如果发现可疑请求,则进行全面响应——包括轮换服务器上可用的密钥和其他密钥。首先应寻找以下攻击后活动的迹象:对服务器环境的侦察、寻找密钥(.env文件、CI/CD令牌等)以及安装Web Shell。

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