React2Shell 漏洞的幕后黑手曝光

摘要
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 分漏洞,成为你项目最后的墓志铭。

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