ddanielx86/CVE-2025-44964
GitHub: ddanielx86/CVE-2025-44964
针对 BlueStacks v5.20 SSL 证书验证不当漏洞(CVE-2025-44964)的概念验证、检测与流量拦截工具集。
Stars: 0 | Forks: 0
# CVE-2025-44964 — BlueStacks v5.20 SSL 证书验证不当
## 概述
**BlueStacks v5.20** 中缺乏 SSL/TLS 证书验证,使得相邻网络的攻击者能够对模拟器的后端 API 通信发起中间人 (MITM) 攻击,可能导致敏感数据泄露或被篡改。
由于 BlueStacks 接受服务器提供的任何证书——包括自签名或伪造的证书——已经位于同一局域网内的攻击者可以静默拦截并修改模拟器与其云服务之间的 HTTPS 流量。
## 技术细节
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2025-44964 |
| CVSS v3.1 评分 | **3.9** (低) |
| CVSS 向量 | `CVSS:3.1/AV:A/AC:H/PR:H/UI:N/S:U/C:L/I:L/A:L` |
| 攻击途径 | 相邻网络 |
| 攻击复杂度 | 高 |
| 所需权限 | 高 |
| 用户交互 | 无 |
| 影响范围 | 不变 |
| 机密性 | 低 |
| 完整性 | 低 |
| 可用性 | 低 |
| EPSS | ~2.5 % |
| CWE | CWE-295 |
| NVD 发布时间 | 2025-08-05 |
### 根本原因
BlueStacks v5.20 通过 HTTPS 与其 backend API 通信,但**未**验证服务器的 X.509 证书链或主机名。相关的故障点:
1. **无信任链验证** — 未对照受信任的 CA 存储来检查证书。
2. **无主机名验证** — 未将所提供证书的 CN/SAN 与所请求的主机名进行匹配。
3. **静默接受** — 无效证书未触发任何错误或回退;连接正常继续。
这是开发人员为了绕过开发时的摩擦而禁用 SSL 验证(例如在 Python 的 `requests` 中传递 `verify=False`,或在 Java 中使用 `TrustAllCerts`),随后将其发布到生产环境的经典模式。
### 攻击流程
```
[BlueStacks v5.20] ──HTTPS──► [Attacker MITM Proxy] ──HTTPS──► [BlueStacks API]
│ │
│ (accepts forged cert) │ (terminates TLS, reads / modifies plaintext)
└───────────────────────────────┘
```
1. 攻击者将自身置于与受害者相同的局域网段(或其控制的上游路由器上)。
2. 通过 ARP 欺骗(或 DNS 投毒)将 BlueStacks 的出站 HTTPS 流量重定向至攻击者的主机。
3. 攻击者的 MITM proxy 提供一个自签名证书。
4. BlueStacks 毫无异议地接受该证书。
5. 所有 API 流量(session token、设备信息、更新 payload 等)均以明文形式暴露给攻击者。
## 仓库结构
```
CVE-2025-44964/
├── README.md ← This file
├── requirements.txt ← Python dependencies
├── poc/
│ ├── poc.py ← Main PoC launcher
│ ├── mitm_proxy.py ← SSL MITM proxy server
│ ├── cert_gen.py ← Self-signed certificate generator
│ └── arp_spoof.py ← ARP spoofing module (network redirect)
├── detection/
│ └── check_ssl_validation.py ← Tests whether a target validates SSL
├── mitigation/
│ └── mitigation.md ← Detailed mitigation guidance
├── docs/
│ ├── technical_analysis.md ← In-depth technical write-up
│ └── timeline.md ← Disclosure timeline
└── docker/
├── Dockerfile ← Isolated lab environment
└── docker-compose.yml ← Full lab stack
```
## 快速开始
### 前置条件
```
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
### 运行 PoC (本地实验环境)
```
# 终端 1 — 启动 MITM 代理
sudo python3 poc/poc.py --mode proxy --listen-port 8443 --cert-dir certs/
# 终端 2 — 启动 ARP 欺骗 (LAN 场景)
sudo python3 poc/arp_spoof.py --target --gateway --iface eth0
# 终端 3 — 查看拦截的流量
tail -f mitm_traffic.log
```
### 仅检测 (无需欺骗)
```
python3 detection/check_ssl_validation.py --target --port 443
```
## 概念验证输出
一次成功的攻击会产生类似于以下的输出:
```
[*] MITM Proxy listening on 0.0.0.0:8443
[*] ARP spoof active: 192.168.1.50 → 192.168.1.1
[+] Connection intercepted from 192.168.1.50:54321
[+] Target accepted forged certificate (CN=*.bluestacks.com)
[+] Intercepted request:
POST /api/v2/session/auth HTTP/1.1
Host: api.bluestacks.com
Authorization: Bearer eyJhbGci...
Content-Type: application/json
{"device_id": "...", "version": "5.20.0.1054", ...}
[+] Intercepted response (200 OK):
{"session_token": "...", "user_id": "...", ...}
```
## 影响
| 场景 | 影响 |
|---|---|
| Session token 窃取 | 账户接管 |
| API 响应篡改 | 恶意更新注入,feature flag 篡改 |
| 设备指纹泄露 | 用户跟踪 / 去匿名化 |
| 凭证拦截 | 取决于具体的 API 调用 |
## 受影响版本及补丁状态
| 版本 | 状态 |
|---|---|
| ≤ 5.20 | **存在漏洞** |
| > 5.20 (所有受支持版本) | 已修补 — 强制执行正确的证书验证 |
## 缓解措施
有关完整指南,请参阅 [`mitigation/mitigation.md`](mitigation/mitigation.md)。
**简述:**
- 立即将 BlueStacks 更新至最新可用版本。
- 作为网络级的补偿控制,实施网络分段,以防止来宾/不受信任的设备对 BlueStacks 主机执行 ARP 欺骗。
- 监控托管网络中意外的 ARP 缓存更改。
## 参考文献
- [NVD — CVE-2025-44964](https://nvd.nist.gov/vuln/detail/CVE-2025-44964)
- [BlueStacks 安全公告](https://support.bluestacks.com/hc/en-us/articles/39010129797261)
- [GitHub Advisory GHSA-pqpc-hhgr-p436](https://github.com/advisories/GHSA-pqpc-hhgr-p436)
- [CWE-295:不当的证书验证](https://cwe.mitre.org/data/definitions/295.html)
## 免责声明
本仓库**仅出于教育和安全研究目的**发布。
此代码在受控的实验环境中演示该漏洞。请仅在您拥有或已获得明确书面测试许可的系统上使用。在大多数司法管辖区,未经授权拦截网络流量是违法行为。
标签:BlueStacks, CVE-2025-44964, CVSS 3.9, CWE-295, HTTPS劫持, MITM, SSL证书验证不当, X.509证书, 中间人攻击, 数据窃取, 数据篡改, 本地网段攻击, 模拟器安全, 漏洞分析, 网络安全, 请求拦截, 路径探测, 逆向工具, 隐私保护