CVE-2025-55182(React2Shell)深度解析:CVSS 满分 RCE 漏洞原理与修复指南

🚨 CVSS 10.0 满分,免认证 RCE。 2025 年 12 月 3 日,Facebook 安全团队披露了 CVE-2025-55182,一个存在于 React Server Components 核心反序列化逻辑中的严重漏洞。攻击者无需账号、无需权限,只需构造一个 HTTP 请求,就能在目标服务器上执行任意代码。

这个漏洞为什么值得认真对待

CVE-2025-55182 有一个更响亮的外号:React2Shell。它被 CISA 列入 KEV(已知被利用漏洞)清单,微软、Palo Alto Unit 42、Trend Micro 等机构相继发布应急响应公告。披露后 24 小时内,Trend Micro 就监测到多个独立攻击活动开始大规模扫描和利用这一漏洞。

数字说明问题:React 被全球约 40% 的开发者使用,Next.js 占据服务端 React 框架约 18%—20% 的市场,Airbnb、Netflix 等头部产品均构建在这一生态之上。Wiz 的测试表明,针对默认配置的漏洞复现成功率接近 100%。

漏洞原理:问题出在哪里

要理解 CVE-2025-55182,需要先了解 React Server Components(RSC)的工作方式。RSC 是 React 19 引入的架构,允许部分 UI 组件在服务端运行,通过一种叫做 React Flight 协议的序列化机制在客户端和服务端之间传递数据。这个设计的初衷是减少发送到浏览器的 JavaScript 体积,让页面渲染更快。

问题出在 react-server 包对 HTTP 请求载荷的反序列化处理上。当服务器收到一个发往 Server Function 端点的 POST 请求时,它会在任何身份验证和业务逻辑校验执行之前,先对请求体进行反序列化。攻击者只需在请求头中加入 Next-Action 字段(哪怕值是任意字符串),就能触发这条脆弱的代码路径。

本质上,这是一个逻辑型反序列化漏洞:服务端信任了客户端传来的数据结构,在没有充分验证的情况下将其转化为服务端的执行逻辑,攻击者借此将攻击载荷注入服务端进程,获得与 React 进程相同的权限。

关键点:即使你的应用代码中没有主动定义 Server Functions,只要启用了 React Server Components(Next.js App Router 的默认配置就是如此),就仍然处于漏洞影响范围内。

受影响版本

框架受影响版本修复版本
React(react-server)19.0.0, 19.1.0, 19.1.1, 19.2.019.0.1, 19.1.2, 19.2.1
Next.js15.0.4 及更早的多个版本15.1.9 / 15.2.6 / 15.3.6+
其他受影响框架React Router RSC preview、Redwood SDK、Waku、Vite RSC 插件、Parcel RSC 插件

漏洞被利用之后会发生什么

Palo Alto Unit 42 和 Trend Micro 的遥测数据记录了真实攻击链的完整过程。披露后数天内观察到的典型攻击行为包括:

初始访问

  • 大规模自动化扫描
  • Base64 编码命令执行
  • 下载恶意 Shell 脚本

持久化与横向移动

  • 部署 Cobalt Strike Beacon
  • 安装 Nezha / Sliver / FRP
  • 窃取 .env 和 CI/CD Token

Unit 42 还识别出与中国国家安全部(MSS)存在关联的 CL-STA-1015 组织参与了部分后渗透活动,部署了 SNOWLIGHT 和 VShell 木马。

修复与缓解措施

首选方案:升级到修复版本。这是唯一能从根本上消除风险的方法。对 Next.js 用户,在项目根目录执行:

# Next.js 用户升级命令
npm install next@latest
# 验证当前版本
npx next --version

临时缓解(无法立即升级时):

  • 部署 WAF 规则拦截含 Next-Action 请求头的异常请求。Cloudflare(含免费版)、Azure WAF、AWS WAF 均已发布对应规则。
  • 如果应用不需要 Server Functions,在框架配置中显式禁用。
  • 在服务器上部署 EDR/EPD 代理,监测 React 进程异常行为。
  • 审查近期服务器日志,重点排查含 Next-Action 头的 POST 请求记录。

⚠️ 关于「复现」:网络上流传着大量声称可以复现 CVE-2025-55182 的工具,Trend Micro 统计发现约 145 个 PoC 中,大多数并不能触发真实漏洞,部分还携带恶意代码。安全研究者在测试前请务必核验 PoC 来源。

如何判断自己是否受影响

可以通过以下几个问题快速自检:应用是否使用了 React 19?是否启用了 React Server Components 或 Next.js App Router?是否未使用任何框架(纯客户端 React)?如果是纯客户端渲染且没有服务端代码,则不受影响。否则,都应当立即检查版本并升级。

更多安全漏洞分析、开发者工具资讯,欢迎访问 Sorabin.com。

Leave a Comment

Your email address will not be published. Required fields are marked *