这是一个概念验证工具,用于演示在 授权、本地测试环境 中极具危险性的 React2Shell 漏洞(CVE-2025-55182 / CVE-2025-66478)。
此漏洞(CVSS 10.0)正被高级威胁行为者积极利用。 亚马逊威胁情报报告称,包括 Earth Lamia 和 Jackpot Panda 在内的多个与中国相关的国家支持组织,在漏洞披露后数小时内就开始将公开的利用代码武器化。美国网络安全和基础设施安全局(CISA)已将其列入已知被利用漏洞(KEV)目录。
CVE-2025-55182(React2Shell)是 React 服务器组件(RSC)“Flight”协议中的一个关键的、无需预认证的远程代码执行(RCE)漏洞。另一个标识符 CVE-2025-66478 最初分配给 Next.js,但后来被判定为 CVE-2025-55182 的重复项,因为两者共享相同的根本原因。
chmod +x pwn-nextjs.sh
./pwn-nextjs.sh [目标URL] [命令]
# 针对特定 URL
./pwn-nextjs.sh https://vulnerable-app.example.com "whoami"
root
该漏洞源于特定的 React 包,影响任何捆绑这些包的框架。
不受影响:Next.js 13.x、Next.js 14.x 稳定版、Pages Router 应用程序以及 Edge Runtime 不受影响。
RSC Flight 协议序列化数据用于客户端-服务器通信。漏洞存在于服务器的反序列化逻辑中,该逻辑不安全地扩展来自传入有效载荷的对象属性,且没有进行充分的验证。这使得攻击者能够将恶意键(如 __proto__ 或 constructor)注入请求,导致原型污染。
一旦原型链被污染,服务器便会遵循攻击者影响的执行路径。这可以被链接以执行具有服务器权限的任意 JavaScript 代码,从而导致完全远程代码执行(RCE)。
安全研究人员观察到成功利用导致以下行为:
.aws/credentials)。修补是强制性的,也是完全消除漏洞的唯一方法。没有配置设置可以禁用易受攻击的代码路径。
# 对于 Next.js 用户,升级到您发布线路中的最新修补版本。
# 示例:如果您使用的是 Next.js 15.5.x:
npm install [email protected]
# 同时确保 React 依赖项也已更新:
npm install react@latest react-dom@latest
验证您的 package-lock.json 或 yarn.lock 文件反映了已修补的 react-server-dom-* 包版本(19.0.1、19.1.2 或 19.2.1)。
在修补的同时,部署 Web 应用防火墙(WAF)规则以阻止利用尝试:
AWSManagedRulesKnownBadInputsRuleSet(v1.24+)包含针对此 CVE 的规则。cve-canary 规则。注意:WAF 规则是临时的、不完整的缓解措施。它们不能替代修补的必要性。
审查日志中是否存在这些利用尝试的迹象:
next-action 或 rsc-action-id 标头的 POST 请求。包含类似 $@ 或 "status":"resolved_model" 模式的请求体。whoami、id、uname)、读取 /etc/passwd 或向 /tmp/(例如 pwned.txt)写入文件。此工具演示了一个 CVSS 评分为 10.0(最高严重性) 的漏洞,该漏洞正受到国家支持组织的积极利用。
请记住:此工具证明了修补的紧迫性。利用这些知识提升安全性并保护系统,而不是破坏它们。确保所有依赖项都更新到上述列出的修补版本。
| 组件 | 受影响版本 | 已修补版本 | 备注 |
|---|
| React 包 ( react-server-dom-webpack、-parcel、-turbopack) | 19.0.0、19.1.0、19.1.1、19.2.0 | 19.0.1、19.1.2、19.2.1 | 上游缺陷的来源。 |
| Next.js(App Router) | 15.x、16.x、 14.3.0-canary.77 及更高版本 | 15.0.5、15.1.9、15.2.6、15.3.6、15.4.8、15.5.7、16.0.7 | 主要受影响的框架。 |
| 其他框架 | React Router、Waku、RedwoodJS、Parcel(@parcel/rsc)、Vite RSC 插件 | 更新到使用已修补 React 包(>19.0.1、19.1.2、19.2.1)的版本。 | 如果使用受影响的 React 包则存在漏洞。 |