CVE-2025-11953:React Native CLI 严重远程代码执行漏洞深度解析

53 阅读3分钟

CVE-2025-11953: React Native CLI 严重远程代码执行漏洞

一个严重的漏洞允许在运行React Native的开发者机器上进行未经身份验证的远程代码执行。该漏洞由JFrog安全团队发现,CVSS评分为9.8,影响了全球数百万开发者。

漏洞概览

方面详细信息
CVE IDCVE-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)

攻击原理

  1. Metro开发服务器 (React Native CLI的一部分) 默认监听 0.0.0.0:8081 — 绑定到所有网络接口
  2. 如果主机位于公共或共享网络上(例如公共Wi-Fi、配置错误的云虚拟机),服务器可直接从互联网访问
  3. 攻击者向/open-url端点发送恶意POST请求
  4. 端点未能清理url参数,导致操作系统命令注入
  5. 命令以开发者用户的权限执行 — 完全控制机器。

概念验证示例

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/