
CVE-2026-0073 用の武器化された概念実証。Android の adbd 認証バイパスにより、ワイヤレス ADB 経由でゼロクリックのリモート root アクセスを可能にし、プロファイリング、抽出、永続化のためのポストエクスプロイテーションモジュールを備えています。
ワイヤレス ADB TLS 認証バイパス脆弱性の実戦向け Proof of Concept。 発見者: Barghest、実戦向け PoC 作成者: devtint。
CVE-2026-0073 は、Android Debug Bridge デーモン(adbd)における重大な暗号ロジックの欠陥であり、同一ローカルネットワーク上の認証されていない攻撃者に Zero-Click でのリモート root アクセス を許可します。
このリポジトリには以下が含まれます:
adb_tls_auth_bypass.py — STLS/TLS 認証バイパス用のクリーンでスタンドアロンな PoC。main.py — 自動プロファイリング、アーティファクト抽出、永続化インジェクションを備えた最大化されたエクスプロイトフレームワーク。この脆弱性は、daemon/auth.cpp 内の adbd_tls_verify_cert() 関数に存在します。クライアントが ワイヤレス ADB(STLS パス) 経由で接続すると、相互 TLS 1.3 ハンドシェイクが実行されます。デバイスは、OpenSSL の EVP_PKEY_cmp() を使用して、クライアントの公開鍵を保存済みの認証鍵と比較します。
// daemon/auth.cpp — 脆弱なロジック
if (EVP_PKEY_cmp(stored_key, client_key)) {
// EVP_PKEY_cmp の戻り値:
// 1 = 鍵が一致
// 0 = 鍵が不一致
// -1 = 型の不一致 (RSA vs EC) ← バグ: C++ では真と評価される
authorized = true;
}
EVP_PKEY_cmp() は -1(型の不一致)を返します。-1 は true と評価されます。adbd のロジックは、この -1 を 完全一致 として解釈します。このエクスプロイトは ワイヤレスデバッグの STLS パスでのみ機能 し、レガシーな adb tcpip パスでは機能しません。
| 接続モード | ポート | プロトコル | 脆弱性あり? |
|---|
192.168.1.34:38741)これは、レガシーな ADB TCP ポート(通常は 5555)に接続していることを意味します。レガシーパスは古い RSA AUTH ハンドシェイクを使用します — これは adbd 内の完全に異なるコードパスであり、この CVE の影響を受けません。代わりにワイヤレスデバッグのポートに接続する必要があります。
フレームワーク(main.py)は、コアの TLS バイパスをモジュール式のポストエクスプロイテーションツールキットに拡張します:
uid=0(root) 疑似端末に直接ドロップインします。--profile): ターゲットの OS、セキュリティパッチレベル、SELinux の適用状況、内部ネットワークピボット用のアクティブなルーティングテーブルを即座にフィンガープリントします。--extract): 機密性の高いシステムファイル(例: /data/misc/adb/adb_keys、/system/build.prop)をバイパスソケット経由で直接自動的に外部送信します。--persist): 不正な RSA 公開鍵をターゲットの認証鍵ファイルに注入します。一度注入されると、攻撃者は CVE が後でパッチ適用されたとしても、永続的で完全に認証されたアクセスを保持します。依存関係のインストール:
pip install cryptography
ターゲットの特定: ローカルサブネット上で ワイヤレスデバッグ が有効な Android デバイスを見つけます。デバイスの開発者オプション画面から 動的ポート をメモします。
エクスプロイトフレームワークの実行:
# インタラクティブシェル(デフォルト)
python main.py <IP> <PORT>
# 単一コマンド実行
python main.py <IP> <PORT> --cmd "id"
# 自動システムプロファイリング
python main.py <IP> <PORT> --profile
# ステルスアーティファクト抽出
python main.py <IP> <PORT> --extract
# 永続バックドア鍵の注入
python main.py <IP> <PORT> --persist
スタンドアロン PoC(最小限):
python adb_tls_auth_bypass.py <IP> <PORT> --cmd "id; whoami"
このリポジトリは、教育、レッドチーミング、および認可されたセキュリティテストの目的のみ を厳格に意図しています。コンピュータシステムへの不正アクセスは違法です。著者は、この情報の誤用について一切の責任を負いません。
adb tcpip 5555(レガシー) | 5555(固定) | AUTH(RSA チャレンジ) | ❌ いいえ |
| ワイヤレスデバッグ(Android 11+) | ランダム(30000–50000) | STLS → TLS 1.3 | ✅ はい |
| エラー | 原因 | 修正 |
|---|
Connection refused | ポートが閉じている / ワイヤレスデバッグが OFF | ワイヤレスデバッグを有効にし、正しい動的ポートを使用 |
AUTH instead of STLS | レガシーな ADB TCP(ポート 5555)に接続 | 5555 ではなくワイヤレスデバッグのポートを使用 |
SSLV3_ALERT_CERTIFICATE_UNKNOWN | デバイスが パッチ適用済み(2026年5月以降) | ターゲットは脆弱ではない — 修正が機能している |
timed out | ポートは開いているが正しく応答しない | ポートを確認し、デバイスでワイヤレスデバッグを再起動 |