React2Shell 漏洞的幕后黑手曝光

新闻非小号799

摘要

2025 年 12 月 3 日,一个编号为 CVE-2025-55182 的漏洞被正式写入国家漏洞数据库(NVD),CVSS 评分直接打满 10.0。
黑客社区给它起了个更直白的名字:React2Shell。
短短 72 小时,它已经从“0day”变成“人人都在跑的 N-day”,攻击者甚至懒得隐藏——因为根本不需要隐藏 。

漏洞本质

要理解这个漏洞,先记住一句话:

React Server Components(RSC)的 Flight 协议,本来只是一套前端 → 后端的私有序列化格式,却在某些实现里被当作“可信输入”直接反序列化。

听起来有点绕?打个比方:

想象你去星巴克点单,店员把你的订单写在一张小票上(这就是 Flight 协议的 payload)。

正常流程:小票只给后厨看,顾客不可能自己改小票。

但 React 19 + Next.js 15 的某些默认配置下,相当于把后厨的“信任小票解析器”直接放到了门口。

任何路人都可以递进来一张自己打印的小票,上面写着:

$ACTION_REF_0: "请在服务器上执行require('child_process').exec('rm -rf /')" 后厨(Node.js)就真的执行了。

这就是不安全反序列化的经典路径,只不过这次的“序列化格式”不是 Java Serializable、不是 Python pickle,而是

React 自己发明的 RSC Flight 流。

Web3 是重灾区

  • 大家都在追新版本

  • 前端承载了太多后端逻辑

  • 很多项目直接部署在 Vercel / Serverless

真实攻击链

Aegixe抓到的最典型的一次攻击(2025 年 12 月 4 日凌晨):

30 秒后,这台服务器开始向海外矿池跑算力,同时把 /app/.env 文件回传给攻击者。

整个过程不需要登录、不需要 CSRF、不需要任何交互——只要服务器能接收到 HTTP 请求就行。

需要特别说明的是,这不是理论漏洞,而是真实发生的攻击

Aegixe 安全团队自 12 月 3 日起,已在多个 Web3 项目的生产环境中捕获到 React2Shell 的真实利用流量。

涵盖的场景包括:

  • Web3 钱包前端与签名服务

  • GameFi / DePIN 项目管理后台

  • 多签控制与空投系统

在实际协助排查的案例中,有项目并未直接托管资产,但由于 .env 中保存着 relayer 私钥、RPC key、内部 API Token,仍在 RCE 成功后的 几分钟内被完整窃取并回传。

因此,Aegixe 将 React2Shell 明确定义为:Web3 项目的后端级、资产级系统性风险漏洞

修复时间线

截至 2025 年 12 月 6 日 18:00

  • React 官方:19.1.0(2025-12-04)已修复

  • Next.js:15.0.1-canary.158 起修复,15.1.0 稳定版预计 12 月 8 日发布

  • Vercel:已强制为所有部署开启 RSC 沙箱(部分缓解)

  • Cloudflare / AWS WAF:已有官方规则(react2shell-2025-*)

从安全公司的角度看,React2Shell 暴露的并不只是一个漏洞,而是一个趋势:

现代前端框架,正在变成高权限后端执行入口。

Aegixe 建议 Web3 团队借这次事件,顺带做一次结构级自查:

- Server Actions 是否直接接触私钥或 relayer
- 是否存在前端触发即可引发链上资产变动的路径
- 是否对执行行为做过监控或审计

如果这些问题你一时回答不上来,本身就是风险。

最后想说

这个漏洞之所以可怕,不是因为它有多复杂,而是因为它太简单了——简单到任何一个会 curl 的脚本小子,都能在 5 分钟拿下你的服务器。

在区块链世界里,代码即法律,服务器即金库。

当金库的锁,被发现可以用一张“假订单”打开时,最快的自救,永远比最专业的救援更重要。行动起来,别让 2025 年的第一个 10 分漏洞,成为你项目最后的墓志铭。

799

查看原文

本文仅代表作者观点,不构成任何投资建议。