Lyrie
Deep-Dive
0 sources verified·9 min read
By Lyrie Research Division·5/13/2026

Master Key Over Wi-Fi: CVE-2026-0073 Android Zero-Click ADB Auth Bypass — PoC Now Public

TL;DR

A cryptographic logic error in Android's debugging daemon (adbd) allows an adjacent-network attacker to bypass wireless ADB mutual authentication and obtain a remote shell on Android 14, 15, and 16 devices — without any user interaction, credentials, or app installation. Tracked as CVE-2026-0073, Google classifies this as Critical in the May 2026 Android Security Bulletin; CVSS v3.1 scores it 8.8 High (AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H). A public PoC was released by BARGHEST Security Research and independently reproduced on GitHub within days. Patch baseline: 2026-05-01 Android security patch level or later. Exploitation requires Developer Options and Wireless Debugging to be active on the target device — a meaningful prerequisite that limits mass exploitation, but one that is trivially satisfied on developer workstations, QA test devices, and an alarmingly high percentage of enterprise handsets where IT never disabled the setting.


Background: Android Debug Bridge and Why It's a High-Value Target

The Android Debug Bridge (ADB) is not a niche developer curiosity. It is the primary low-level interface between Android and the world — it installs apps, dumps logs, opens shells, pushes files, and can be used to bypass Android's standard permission model in ways that end-user apps simply cannot. Historically, ADB required a physical USB connection, which served as a natural access control. The shift to Wireless Debugging (introduced in Android 11, mainstreamed in 12+) changed that calculus permanently: ADB now operates over TCP port 5555, authenticated by a mutual TLS handshake backed by RSA public keys.

The trust model is conceptually elegant. When a developer first pairs their workstation to an Android device, they scan a QR code or enter a pairing code. The device stores the workstation's RSA public key in /data/misc/adb/adb_keys. Future connections present that key in a TLS client certificate; the device verifies it and grants shell access. No stored key, no access. Simple. Secure. Until CVE-2026-0073.


Technical Analysis: The Logic Error That Breaks Everything

The Vulnerable Function

The bug lives in adbd_tls_verify_cert() inside auth.cpp — the function responsible for verifying that a connecting ADB client's TLS certificate public key matches one of the trusted RSA keys stored in the device's ADB key store.

The verification relies on OpenSSL/BoringSSL's generic EVP_PKEY_cmp API to compare keys. This API has a specific return value contract:

  • 1 → keys are equal
  • 0 → keys are not equal
  • -2 → keys are of incomparable types
  • -1 → cross-algorithm mismatch (e.g., comparing an RSA key against an EC key)

The device stores RSA keys. The attacker controls the incoming TLS client certificate and can present any algorithm — EC P-256, Ed25519, or any other curve type. When this mismatch occurs, EVP_PKEY_cmp returns -1.

Here is the fatal error: the C++ code evaluating the return value of EVP_PKEY_cmp uses a boolean truthiness check. In C++, any non-zero integer is truthy. So -1 is interpreted as true — meaning the comparison is treated as a success, and the mismatched certificate is granted the same trust as a legitimately paired host key.

The NVD formally classifies this as CWE-303: Incorrect Implementation of Authentication Algorithm. It is, in the most frustrating category of vulnerabilities, a single-line logic error that invalidates years of cryptographic engineering.

The Attack Sequence

Exploitation follows a precise four-stage protocol interaction:

1. TCP Connection + ADB Handshake: The attacker establishes a TCP connection to port 5555 and completes the ADB CNXN/AUTH framing exchange.

2. STLS Upgrade: The attacker initiates the STLS upgrade to TLS 1.3, completing the handshake. During this phase, the malicious cross-algorithm certificate is presented as the client cert.

3. Authentication Bypass: The device calls adbd_tls_verify_cert(). The cross-algorithm EC or Ed25519 key causes EVP_PKEY_cmp to return -1, which the C++ truthiness evaluation treats as true. Auth is granted.

4. Shell Access: The attacker resumes ADB framing within the now-encrypted authenticated tunnel and opens a shell: stream. They now have an interactive shell as Android's shell user.

What Shell Access Actually Means

The shell user in Android is not root — it cannot write to arbitrary system paths or directly modify the kernel. However, framing CVE-2026-0073 as "limited" because it doesn't achieve root misunderstands the threat model:

  • SELinux enforcement applies, but the shell SELinux context has broad data access
  • Package management: adb install / pm install works from an authenticated ADB session — silent app installation without user prompt
  • Data access: /sdcard, app external storage, logcat streams, and clipboard history are all reachable
  • Notification interception: Accessibility service abuse and notification reads are possible, enabling real-time OTP harvesting for account takeover
  • Persistence: The attacker can add their own RSA key to /data/misc/adb/adb_keys, securing persistent authorized access even after the logic error is patched on future connections
  • Lateral privilege escalation: The shell context is the standard entry point for every documented Android local privilege escalation technique — including several from this month's batch

BARGHEST summarizes the post-exploitation impact accurately: "a remote network peer becomes an authorized debugging host without the paired host private key, gaining a powerful staging context for data access, account abuse, device reconfiguration, and follow-on exploitation."

Exploitation Prerequisites

To be precise about the threat scope:

1. Developer Options must be enabled on the target device (Settings → About Phone → tap Build Number 7 times)

2. Wireless Debugging must be active under Developer Options

3. At least one prior RSA host key must exist in /data/misc/adb/adb_keys (the device must have been paired with at least one ADB host previously — this seeds the trust store and triggers the comparison code path)

4. Adjacent network access to TCP port 5555 — same Wi-Fi SSID or physical LAN segment

Prerequisites 1 and 2 reduce mass internet exploitation to zero. Prerequisites 3 and 4 are, however, trivially met in exactly the environments where the risk is highest: enterprise MDM-enrolled Android fleets used by developers, QA engineers, and field technicians; hotel/conference/corporate Wi-Fi networks attended by developer-phone users; and any device that has ever been connected to Android Studio.


IOCs / Detection Indicators

| Indicator | Description |

|-----------|-------------|

| TCP port 5555 inbound | ADB-over-TCP connection; flag any non-approved source IP |

| adb_keys file modification timestamp | New entries added after last IT-authorized pairing |

| ADB CNXN packet with cross-algorithm TLS cert | EC or Ed25519 cert presented during STLS handshake |

| adb install events in device logs without MDM authority | Unauthorized package installation |

| Logcat entries: adbd connection from unexpected source IP | Unexpected shell authorization |

| Network: TCP SYN floods to port 5555 from scanning tools | Reconnaissance; precursor to targeted exploitation |

Network IOC: BARGHEST's PoC tool uses a recognizable User-Agent string in the CNXN banner field. Specific strings have been circulated in threat intel sharing channels — operators with EDR/NDR visibility on Android management traffic should ingest these.


PoC and Exploitation Tooling Status

  • BARGHEST published a detailed technical writeup at barghest.asia alongside a proof-of-concept within approximately 72 hours of the May 2026 bulletin
  • An independent PoC implementation was published to GitHub under the handle MartinPSDev/CVE-2026-0073-Android-ADBD-bypass-POC
  • No Metasploit module has been confirmed as of this writing
  • No in-the-wild exploitation confirmed; however, the simplicity of the logic error and the quality of published PoCs means that weaponized versions are plausibly in the hands of offensive tooling vendors by now

The disclosure timeline is aggressive by industry standards. From Google patch drop to public weaponized PoC in under two weeks is a narrowing window that enterprises cannot afford to ignore.


Affected Versions

| Android Version | Affected | Patch Available |

|-----------------|----------|-----------------|

| Android 14 | ✅ Yes | 2026-05-01 SPL |

| Android 15 | ✅ Yes | 2026-05-01 SPL |

| Android 16 | ✅ Yes | 2026-05-01 SPL |

| Android 16-QPR2 | ✅ Yes | 2026-05-01 SPL |

| Android 13 and below | Not in bulletin | N/A (out of support) |

Note: adbd is listed under Google Play system updates (Project Mainline), meaning some devices may receive the fix via Play Store module update independent of a full OEM firmware flash. Check both "Android security update" AND "Google Play system update" dates in Settings.


Lyrie Take

CVE-2026-0073 is a textbook case of trust boundary collapse at the protocol layer. The cryptographic primitives (TLS 1.3, RSA key pinning) were correct. The BoringSSL API was documented. The implementation logic — a single integer truthiness evaluation — was wrong in a way that retroactively invalidated the entire security architecture above it.

This matters for enterprise security teams beyond just "patch Android fast." It represents a category of vulnerability that static analysis, fuzzing, and standard code review routinely miss: not a buffer overflow, not an injection, not a race — just a semantically incorrect boolean evaluation of an API return code that was probably never unit-tested for the cross-algorithm case because no one expected an attacker to deliberately mismatch key types.

The broader lesson for mobile security programs: Wireless ADB is an administrative interface and should be treated with the same rigor as SSH. Most enterprise MDM policies do not explicitly disable Developer Options or Wireless Debugging, because historically these were "developer-only" features that "normal" devices didn't use. That assumption is dead in 2026, where every QA device, every developer handset enrolled in corporate MDM, and every conference loaner phone is potentially running Wireless Debugging.

At Lyrie, we flag Wireless Debugging enabled on network-connected devices as a HIGH severity finding in mobile fleet audits. CVE-2026-0073 elevates this to CRITICAL pending patch deployment.


Defender Playbook

Immediate (0–24 hours):

  • [ ] Force-push May 2026 security patch (SPL 2026-05-01+) via MDM to all managed Android devices
  • [ ] Query MDM for devices with Developer Options enabled — review and disable where not operationally required
  • [ ] Block TCP port 5555 inbound at Wi-Fi SSID level (NAC) and enterprise firewall for non-sanctioned source IPs
  • [ ] Audit /data/misc/adb/adb_keys on high-value devices via MDM or manual inspection; remove unauthorized entries

Short-term (24–72 hours):

  • [ ] Enroll all developer/QA Android devices in dedicated, network-isolated VLAN; block cross-segment ADB traffic
  • [ ] Add NDR/EDR alerting rule: flag any TCP connection to port 5555 on corporate-enrolled Android devices
  • [ ] Review Google Play System Update version on Mainline-compatible devices; confirm com.android.adbd APEX module is updated
  • [ ] Issue mobile security advisory to all developers: disable Wireless Debugging when not actively in use

Sustained:

  • [ ] Add "Developer Options and Wireless Debugging disabled" to MDM compliance baseline
  • [ ] Include ADB key store audit in quarterly mobile security review
  • [ ] Add CVE-2026-0073 to threat model for any mobile device handling sensitive data on shared/untrusted Wi-Fi

For organizations running red team exercises: Validate your NDR can detect an unauthenticated ADB connection attempt before escalating to the shell phase. Most network sensors do not inspect ADB protocol headers — this is a gap to close.


Sources

1. Google Android Security Bulletin — May 2026: https://source.android.com/docs/security/bulletin/2026/2026-05-01

2. NVD CVE-2026-0073: https://nvd.nist.gov/vuln/detail/CVE-2026-0073

3. BARGHEST Research — Technical Deep Dive: https://barghest.asia/blog/cve-2026-0073-adb-tls-auth-bypass/

4. Penligent AI Hacking Labs Analysis: https://www.penligent.ai/hackinglabs/cve-2026-0073-android-adbd-zero-click-shell-through-wireless-adb/

5. CyberSecurityNews PoC Coverage: https://cybersecuritynews.com/poc-exploit-android-zero-click-vulnerability/

6. SecurityOnline.info Analysis: https://securityonline.info/android-adb-auth-bypass-cve-2026-0073-public-poc/

7. Forbes — Google Confirms Zero-Click Android Vulnerability: https://www.forbes.com/sites/daveywinder/2026/05/05/google-confirms-critical-android-0-click-vulnerability-update-now/

8. Android Developer ADB Documentation: https://developer.android.com/tools/adb


Lyrie.ai Cyber Research Division — Senior Analyst Desk

Lyrie Verdict

Lyrie's autonomous defense layer flags this class of exposure the moment it surfaces — no signature update required.