CVE-2025-11953: React Native CLI 严重远程代码执行漏洞
一个严重的漏洞允许在运行React Native的开发者机器上进行未经身份验证的远程代码执行。该漏洞由JFrog安全团队发现,CVSS评分为9.8,影响了全球数百万开发者。
漏洞概览
| 方面 | 详细信息 |
|---|---|
| CVE ID | CVE-2025-11953 |
| 严重等级 | 严重 (CVSS v3.1: 9.8) – 网络攻击、复杂度低、无需特权 |
| 受影响包 | @react-native-community/cli-server-api v4.8.0 – v20.0.0-alpha.2 |
| 周下载量 | 超过200万次 (NPM注册表数据) |
| 漏洞类型 | 通过Metro开发服务器/open-url端点的操作系统命令注入 |
| 修复版本 | v20.0.0 (2025年10月发布) |
| 发布时间 | 2025年11月4日 (NVD条目:2025年11月5日) |
| 公开暴露实例 | 超过4,600个实例可通过公开扫描检测到 (ZoomEye) |
攻击原理
- Metro开发服务器 (React Native CLI的一部分) 默认监听 0.0.0.0:8081 — 绑定到所有网络接口。
- 如果主机位于公共或共享网络上(例如公共Wi-Fi、配置错误的云虚拟机),服务器可直接从互联网访问。
- 攻击者向
/open-url端点发送恶意POST请求。 - 端点未能清理
url参数,导致操作系统命令注入。 - 命令以开发者用户的权限执行 — 完全控制机器。
概念验证示例
POST /open-url HTTP/1.1
Host: vulnerable-dev-machine:8081
Content-Type: application/json
{"url": "; calc.exe"} // Windows
{"url": "; whoami"} // Linux/macOS
结果:任意系统命令立即执行。在Windows上,计算器启动;在Unix上,返回用户身份 — 这是完整远程代码执行的证据。
缓解措施
1. 立即更新
npm update @react-native-community/cli @react-native-community/cli-server-api
- 确保版本**>= 20.0.0**
- 运行
npm list @react-native-community/cli-server-api进行验证
2. 仅绑定到本地主机
npx react-native start --host localhost
即使防火墙配置错误,也能防止外部访问。
3. 防火墙规则
- 阻止外部网络对端口8081的入站流量
- 仅允许127.0.0.1或内部IP
4. 使用VPN或安全网络
切勿在公共Wi-Fi或不受信任的网络上运行开发服务器。
5. 扫描暴露情况
使用内部网络扫描仪检测任何绑定到0.0.0.0的react-native start实例。
6. 启用自动安全
- 在CI/CD中开启
npm audit - 使用Dependabot或Snyk进行依赖项监控
影响评估
- 目标丰富环境:开发者笔记本电脑包含源代码、API密钥、SSH凭证和构建工具。
- 供应链信任:由Meta维护 — 受企业和独立开发者信任的包。
- 大规模暴露:在互联网范围的扫描中已识别出超过4,600个公开可访问的实例。
- 静默风险:许多开发者在长时间构建会话期间让Metro保持运行 — 这是进行路过式攻击的完美时机。
结论与建议
立即更新到v20.0.0。绑定到本地主机。外部屏蔽端口8081。
这不是理论风险 — 由于攻击简单且受感染的开发者机器价值高,主动利用的可能性非常大。
保持安全。立即更新。 🔐 6HFtX5dABrKlqXeO5PUv/ydjQZDJ7Ct83xG1NG8fcAPIhpnjAnw6GriYMbzi1dj/