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 — Proof-of-concept exploit for an Android adbd Wireless Debugging TLS auth bypass, using an EC/RSA key type mismatch to obtain an unauthenticated remote shell. | Kitploit
Tools/GitHubGitHub/umarrehmansiddiqui/cve-2026-0073
Android SecurityVulnerability AnalysisExploitationWeb Application ExploitationCryptographyMobile SecurityAuthenticationRemote Access Tool

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
GitHub
umarrehmansiddiqui/cve-2026-0073

CVE-2026-0073

Proof-of-concept exploit for an Android adbd Wireless Debugging TLS auth bypass, using an EC/RSA key type mismatch to obtain an unauthenticated remote shell.

View Repository
11 day agoNot yet reviewed

CVE-2026-0073: Android Wireless Debugging (adbd) Authentication Bypass

Disclaimer: This Proof of Concept (PoC) is provided strictly for educational and authorized security research purposes. Unauthorized access to computer systems is illegal. Always ensure you have explicit permission before testing against any device or network.

📖 Understanding the Vulnerability (Beginner Friendly)

Android devices have a feature called Wireless Debugging, which allows developers to connect to the device over Wi-Fi without a USB cable. To keep this connection secure, the device uses TLS encryption and requires the connecting computer to prove its identity using a cryptographic key.

Where is the flaw? When a computer connects, the Android daemon (adbd) checks if the computer's key matches any previously authorized keys. It does this using a built-in mathematical function (EVP_PKEY_cmp) that returns one of three numbers:

  • 1 means: "The keys match perfectly."
  • 0 means: "The keys do not match."
  • -1 means: "Error: The keys are completely different types (e.g., comparing an RSA key to an EC key)."

The Bug: The programmer wrote a simple check: if (result) { grant_access(); }. In programming, both 1 and -1 are considered "True". Therefore, if an attacker intentionally sends a completely different type of key (like an Elliptic Curve key instead of the expected RSA key), the function returns -1 (an error). The buggy code sees -1, assumes it means "True", and grants full access anyway.

The Result: An attacker on the same Wi-Fi network can bypass the authentication entirely and gain a remote shell on the device without needing the original pairing keys, and without the user seeing any approval prompt.


⚠️ Prerequisites

For this exploit to work, the target Android device must meet two conditions:

  1. Wireless Debugging must be enabled in the Developer Options.
  2. The device must have been paired with at least one computer previously. (The exploit relies on the device having an existing RSA key in its keystore to trigger the type-mismatch bug).

Attacker Machine Requirements

This script requires Python 3 and the cryptography library to generate the ephemeral certificates on the fly.

You can install the required library using either apt (on Debian/Ubuntu/Kali) or pip:

Using apt (Recommended for Linux):

sudo apt update
sudo apt install python3-cryptography

Using pip (Cross-platform):

pip3 install cryptography

🔍 Finding the Target Port

Unlike USB debugging, Android assigns a random, high-numbered port for Wireless Debugging every time the device reboots or the Wi-Fi network changes.

If you don't know the current port, you can easily scan for it using nmap. Wireless debugging ports typically fall between 30000 and 50000.

Run the following command, replacing <hostname> with your target device's IP address:

nmap -Pn -p T:30000-50000 <hostname>

How to read the output: Look for a port that shows as open. For example:

PORT      STATE SERVICE
41234/tcp open  unknown

In this example, 41234 is the port you will use in the next step.


🚀 Usage

Once you have the target hostname/IP and the correct port, you can run the exploit.

1. Interactive Shell

To open a full interactive remote shell (similar to SSH):

python3 adb_bypass.py <hostname> <port>

Example:

python3 adb_bypass.py 192.168.1.50 41234

Once connected, you will be dropped into a shell user prompt. Press Ctrl+C to exit.

2. Execute a Single Command

If you just want to run a specific command and see the output without entering an interactive shell, use the --cmd flag:

python3 adb_bypass.py <hostname> <port> --cmd "id"

3. Verbose Mode

To see the underlying network traffic and handshake details for debugging or research purposes, append the -v flag:

python3 adb_bypass.py <hostname> <port> -v

🛠️ How It Works (Technical Summary)

  1. Cleartext Negotiation: The script connects to the target's TCP port and exchanges the initial CNXN and STLS packets to agree on a TLS upgrade.
  2. Ephemeral Certificate Generation: Using the cryptography library, the script generates an ephemeral EC P-256 private key and a self-signed X.509 certificate in memory.
  3. TLS 1.3 Upgrade: The script upgrades the socket to TLS 1.3, presenting the EC certificate to the Android device.
  4. Triggering the Flaw: The device attempts to compare the EC certificate against its stored RSA keys. EVP_PKEY_cmp returns -1, the if (cmp) check evaluates to true, and the device marks the connection as authorized.
  5. Post-TLS Exploitation: The script drains the post-TLS handshake packets and immediately opens a shell: stream using a large delayed_ack window, resulting in an unauthenticated remote shell.

Download Tool