Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
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.

FeedsContactPrivacy© 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
32653 months 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.

// Vulnerable code pattern in daemon/auth.cpp
if (EVP_PKEY_cmp(peer_key, stored_key)) { // ← BUG: -1 is truthy!
    authorized = true;
}
EVP_PKEY_cmp() Return ValueMeaningTruthy in C?Result
1Keys match✅Authorized (correct)
0Keys differ❌Denied (correct)
-1Type mismatch✅Authorized (BUG)

⚡ Quick Start

Install Dependencies

pip install cryptography

Run the Exploit

# 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

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

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

RequirementDetails
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

⚠️ 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

adb shell getprop ro.build.version.security_patch

🧪 Test Environment

Confirmed working on the following test environment:

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

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