adityatelange/poc-CVE-2026-0073
GitHub: adityatelange/poc-CVE-2026-0073
针对 CVE-2026-0073 的概念验证脚本,利用 ADB 守护进程 TLS 证书验证逻辑漏洞绕过无线 ADB 双向认证,实现未授权远程命令执行。
Stars: 10 | Forks: 2
# CVE-2026-0073 PoC (无线 ADB TLS 身份验证绕过)
此目录包含针对 CVE-2026-0073 的 Python 概念验证脚本。
## 概述
CVE-2026-0073 是 ADB 守护程序证书验证(`auth.cpp` 中的 `adbd_tls_verify_cert`)中的一个逻辑问题。
存在漏洞的检查将 `EVP_PKEY_cmp(...)` 的任何非零返回值都视为匹配成功。
预期的比较结果处理应为:
- `1` = 密钥匹配
- `0` = 密钥不匹配
- 负值 = 错误 / 不支持的比较
在存在漏洞的构建版本中,负值被视为真值,可能会错误地将证书标记为已授权。
## `poc-cve-2026-0073.py` 的作用
该脚本:
1. 创建一个非 RSA 客户端证书(`ec` 或 `ed25519`)。
2. 连接到目标 ADB TCP 服务。
3. 执行 CNXN -> STLS -> TLS 握手流程。
4. 通过存在漏洞的证书比较路径进行身份验证。
5. 打开命令服务(`shell:`,并提供 `exec:` 备用方案)。
6. 打印命令输出。
## 要求
- Python 3.10+(推荐)
- `cryptography` 包
- 目标设备已启用无线 ADB
- 到目标 ADB 端口的网络可达性
- 目标设备的测试授权
安装依赖项:
```
pip install cryptography
```
## 用法
发现目标 ADB 服务(如果需要):
```
adb mdns services
```
运行 PoC:
```
python3 poc-cve-2026-0073.py [port] [command] [key_type] [--verbose]
```
参数:
- `target_ip`:目标 Android 设备的 IP 地址
- `port`:ADB 端口(默认:`5555`)
- `command`:要执行的命令(默认:`id`)
- `key_type`:`ec` 或 `ed25519`(默认:`ec`)
- `--verbose`:启用协议调试日志
示例:
```
python3 poc-cve-2026-0073.py 192.168.1.100 5555 id
python3 poc-cve-2026-0073.py 192.168.1.100 5555 whoami ec --verbose
python3 poc-cve-2026-0073.py 192.168.1.100 5555 getprop ed25519
```
## 典型的成功输出
```
[*] Opening service: 'shell:id'
[*] After OPEN, received: OKAY arg0=2 data=b''
[+] Stream open (local_id=1, remote_id=2)
[+] Command output:
----------------------------------------
uid=2000(shell) gid=2000(shell) ...
----------------------------------------
[+] Exploitation successful.
```
## 故障排除
- `Connection refused`(连接被拒绝)
- 无线 ADB 可能被禁用。
- 目标 IP/端口错误。
- `certificate_unknown`(证书未知)
- 设备可能已修复此问题。
- 或者目标在此身份验证路径中没有符合条件的受信任密钥状态。
- 等待响应超时
- 检查网络路径以及目标 ADB 套接字的可用性。
- 使用 `--verbose` 重试以获取数据包级别的跟踪信息。
## 关于补丁级别检查的说明
基本操作系统安全补丁级别 (Base OS security patch level) 和 Mainline 模块补丁可能有所不同。
设备可能显示较旧的每月 SPL,但同时接收到了较新的 ADB 模块修复。
有用的检查命令:
```
adb shell getprop ro.build.version.security_patch
adb shell pm list packages --apex-only | grep adbd
adb shell dumpsys package com.google.android.adbd | grep -E "versionCode|versionName|lastUpdateTime"
```
## 负责任的使用
仅在经过授权的环境中(拥有的实验室设备、明确的许可或批准的测试)使用此 PoC。
请勿对您不拥有或未获得书面测试授权的系统运行此程序。
## 参考
- Android 安全公告(2026 年 5 月)
- CVE-2026-0073 的 NVD 条目
- AOSP ADB 源代码(`daemon/auth.cpp`)
标签:0-day, ADB, adbd, ADB无线调试, Android, Android安全, Android调试桥, CISA项目, Cryptography库, CVE-2026-0073, DSL, ec, ed25519, EVP_PKEY_cmp, Exploit, Modbus, N-day, PoC, Python, RCE, TLS身份验证绕过, 命令执行, 安全测试工具, 底层编程, 提示词注入, 无后门, 无线ADB, 暴力破解, 概念验证, 漏洞分析, 目录枚举, 移动安全, 编程工具, 网络安全, 证书验证缺陷, 路径探测, 身份验证绕过, 身份验证缺陷, 远程代码执行, 逆向工具, 逻辑漏洞, 隐私保护