缓解 React Server Components RCE(CVE-2025-55182)

发布: (2025年12月24日 GMT+8 11:15)
4 分钟阅读
原文: Dev.to

Source: Dev.to

React Server Components (RSC) 最近被发现受到高危远程代码执行漏洞 (CVE‑2025‑55182) 的影响。
攻击者可以在 Flight 协议中构造恶意序列化数据,利用诸如 Next.js Server Actions 等特性,触发反序列化缺陷,从而在服务器上实现远程代码执行。

什么是 CVE‑2025‑55182?

React Server Components (RSC) 包含一个高危 反序列化缺陷,可能导致 远程代码执行

在受影响的环境中,攻击者可以:

  • React Flight 协议 中构造 恶意序列化负载
  • 利用 Next.js Server Actions"use server"
  • 触发不安全的反序列化逻辑

结果: 在服务器上执行任意代码。
只要 RSC 和 Server Actions 对不受信任的输入暴露,攻击面就会存在。

优先级 1:识别并修补(主要缓解措施)

最重要的缓解措施是 识别并升级。WAF 规则可以提供帮助,但不能替代根本原因的修复。

如何判断是否受影响

如果以下 全部或大多数 条件成立,你很可能受到影响:

  • 使用 Next.js,尤其是 v13.4 或更高版本
  • 应用使用 React Server Components
  • 代码库中包含 "use server" 指令(Server Actions)

重要提示
易受攻击的包 (react-server-dom-webpack) 通常 由 Next.js 内部打包。你可能在 package.json 中看不到它,因此不要因为它未列为直接依赖就认为安全。

升级建议

立即升级到最新的 已修补安全漏洞 的 Next.js 版本。

截至撰写本文时,这意味着:

  • Next.js 14.x 中的已修补发布,或
  • Next.js 15.x 中的更高修复版本

React 团队通过修复 对恶意 Thenable 对象的不安全解析 来解决根本问题,这正是反序列化漏洞的核心。

这才是唯一完整的修复方案。
其他所有措施都应视为临时的风险降低手段。

优先级 2:使用 SafeLine 的 WAF 级别缓解

如果无法立即升级(例如因发布冻结或遗留依赖),可以在 WAF 层添加 防御层。这 并不能消除漏洞,但可以帮助拦截 已知的利用模式

示例:SafeLine 自定义拒绝规则

SafeLine WAF 中,配置如下条件的自定义 拒绝规则

请求头
Content-Type 匹配(正则):multipart

请求体
正则匹配:[’”]?then[’”]?\s*:\s*[’”]?$1:proto:then

SafeLine rule example

此规则针对尝试通过在序列化数据中滥用 Thenable 结构来利用 RSC 反序列化逻辑的负载。

该规则的作用(以及不做的事)

  • ✅ 有助于拦截已知的利用签名

  • ✅ 在补丁窗口期间降低暴露风险

  • 能保证对新出现或混淆的负载提供保护

  • 能替代升级 Next.js

把它当作 安全带,而不是根治方案。

结论

  • 如果你使用 Next.js + RSC + Server Actions,应假设存在风险,直至证实安全。
  • 升级是强制性的,而非可选。
  • WAF 规则(如 SafeLine 中的规则)最适合作为 深度防御,尤其在迁移期间。

配置良好的 WAF 能为你争取宝贵时间,但 应用层面的漏洞无法仅靠外围防御完全解决

Back to Blog

相关文章

阅读更多 »