紧急补丁——React服务器函数中的严重漏洞CVE-2025-55182被主动利用

Source: InfoQ - Backend

11月29日,Lachlan Davidson报告了React Server Components(RSC)中一个未经身份验证的远程代码执行(RCE)漏洞。该漏洞于12月3日公开披露,并被追踪为CVE-2025-55182,具有最高严重性等级(10.0)。亚马逊威胁情报团队报告称,多个与中国政府有关的威胁组织正在尝试积极利用这一漏洞。这一关键漏洞影响React版本19.0.0至19.2.0以及使用App Router的Next.js 15.x和16.x版本。强烈建议公司立即修补。

在最初的PoC中,Davidson展示了如何利用React Server Components使用的序列化/反序列化协议来创建一个类似promise的对象,当等待时,攻击者可以通过调用原生函数(如 child_process.execSync )来执行任意代码。虽然修复看起来很简单(添加 hasOwnProperty 检查以避免JavaScript的对象原型污染),但漏洞本身也很简单,可以从许多来源获得公共漏洞代码(其中一些是AI生成的)。

除了AWS,各种安全公司和咨询公司也识别出了包含武器化有效载荷的积极利用尝试。亚马逊报告称

对MadPot的数据分析揭示了这些利用尝试的持续性。在一个值得注意的例子中,一个与IP地址183[.]6.80.214相关的未归归属威胁集群花费了近一个小时(从UTC时间2025年12月4日凌晨2:30:17至3:22:48)系统地排除了利用尝试的故障:

* 52分钟内总共有116个请求

* 尝试了多个漏洞有效载荷

* 尝试执行Linux命令(whoami, id)

* 尝试写入文件到/tmp/pwned.txt

* 尝试读取/etc/passwd

这个漏洞是服务器端JavaScript原型污染的一个案例。为了污染对象,攻击者需要一种方法来向原型对象添加任意属性。在第二步中,攻击者需要一个利用向量来访问被污染的属性。

在这种特定情况下,通过精心设计的负载添加任意属性,这些负载被Flight协议反序列化为损坏的JavaScript对象,该协议由React Server Components用于与服务器通信。需要由React Server Component渲染数据的客户端向服务器端点发送请求。服务器解析传入的有效载荷,执行相关的服务器端逻辑,并返回组件树的序列化表示。这里的第二步是将有效负载作为promise进行不安全的反序列化。未修补的React版本不验证序列化的有效载荷并开始解析它(例如,等待promise,从而运行注入的then代码)。服务器端JavaScript环境对代码可以做什么几乎没有限制,因此攻击者可以读取文件、生成进程和运行任意命令。

读者可以在Moritz Sanft的详细技术介绍中找到更多技术细节。更重要的是,公司应该尽快修补已识别的包以及将它们列为依赖项的包(例如,一些Vite插件、react-router、waku)。

原文链接:

https://www.infoq.com/news/2025/12/CVE-2025-55182-react-server-func/