这个漏洞本质上是 Wireless ADB(无线调试)认证绕过。
核心点不是“安卓被远程秒控”,而是:
> 攻击者伪装成已经配对过的 ADB 主机,骗过 adbd 的 TLS 双向认证,然后直接拿到 adb shell。
---
漏洞利用链(技术原理)
先理解正常流程。
Android 11 以后,无线调试(Wireless Debugging):
手机开启开发者选项
打开无线调试
PC 与手机配对
后续通过 TLS/mTLS 建立 ADB 通道
正常情况下:
PC <--TLS双向认证--> adbd
双方都要验证证书。
---
而这个漏洞:
adbd_tls_verify_cert()
里的证书校验逻辑有错误。
官方描述是:
> bypass of wireless ADB mutual authentication due to a logic error
也就是:
> “双向认证”实际上被绕过了。
---
实际攻击过程
攻击者需要:
和目标在同一局域网
或能访问 mDNS/ADB 服务
目标开启过无线调试
某些情况下需要曾经配对过 ADB
然后:
---
第一步:扫描无线ADB设备
Wireless ADB 会广播:
_adb-tls-connect._tcp
攻击者可通过:
mDNS
nmap
adb discovery
发现设备。
类似:
nmap -p 37099
192.168.1.0/24---
第二步:伪造TLS身份
正常应:
验证 host cert 公钥
但漏洞导致:
验证逻辑失效
攻击者可以:
构造伪造证书
利用 EVP_PKEY 比较逻辑缺陷
或利用错误返回值
让 adbd:
误认为:
“这是合法已配对主机”
Reddit 上已经有人放出 PoC。
---
第三步:建立ADB shell
认证通过后:
adb connect victim_ip:port
adb shell
于是攻击者直接获得:
shell uid
权限。
---
shell 用户到底多危险?
很多媒体写得夸张。
它不是:
root
但危险仍然很高。
Android 的 shell 用户能:
能做的
1. 读取大量系统信息
getprop
settings list
pm list packages
---
2. 安装 APK
adb install xxx.apk
---
3. 启动 Activity/Service
am start
am broadcast
---
4. 截屏录屏
screencap
screenrecord
---
5. 访问部分共享存储
取决于 SELinux 和 scoped storage。
---
6. 提权利用
很多 Android 提权链:
先拿 shell
再提 root
所以 shell 是极危险跳板。
---
为什么说“零点击”?
因为:
不需要点链接
不需要安装 APK
不需要授权
不需要社工
只要:
网络可达 + 无线ADB暴露
即可。
---
真正影响面其实没媒体写得那么大
这是关键。
很多文章故意省略一个重要前提:
必须存在 Wireless ADB 暴露
通常意味着:
开启开发者选项
开启无线调试
曾进行过无线配对
普通用户默认:
不会开启
因此:
普通消费者风险有限
真正高风险的是:
ROM开发者
Android工程师
刷机玩家
自动化测试设备
云真机
企业测试机
尤其:
长期开无线ADB
的人。
---
为什么 CVSS 还能到 8.8?
因为它满足:
条件 满足
无需认证 YES
无需用户交互 YES
可远程代码执行 YES
攻击复杂度低 YES
所以评分高。
---
Google 修复方式推测
官方未公开完整 patch diff。
但从描述推测,大概率是:
adbd_tls_verify_cert()
中的:
EVP_PKEY_cmp
cert chain verify
返回值判断
公钥匹配逻辑
修复了认证判断错误。
属于:
认证算法实现错误(CWE-303)
。
---
你作为 Android 系统工程师,需要重点关注
你这个方向里,真正危险的是:
1. 工程机默认开 adb tcpip
很多厂商:
setprop service.adb.tcp.port 5555
长期开放。
这比普通 Wireless Debugging 更危险。
---
2. userdebug/eng 版本
很多:
ro.adb.secure=0
或 SELinux 放宽。
会导致:
直接 root shell
而不是普通 shell。
---
3. 实验室公共WiFi
ADB over WiFi 在:
办公室
实验室
展会
酒店 WiFi
都可能被扫描。
---
如何确认自己是否暴露
可以看:
adb shell settings get global adb_wifi_enabled
或者:
开发者选项:
无线调试
是否开启。
---
缓解措施
普通用户
更新 2026-05 安全补丁
关闭开发者选项
关闭无线调试
---
工程设备
建议:
adb usb
替代:
adb tcpip 5555
---
企业环境
建议:
局域网 ACL
阻断 5555/370xx
禁止 mDNS 广播
EDR 扫描 adbd 暴露
---
结论
这个漏洞本质是:
Wireless ADB 的 TLS 身份认证绕过
攻击者利用:
adbd_tls_verify_cert() 逻辑错误
伪装成可信 ADB 主机,
最终:
未经授权获得 adb shell
它不是“任何安卓手机都能被秒控”,而是:
“开启了无线ADB的设备存在高危RCE风险”
这是两个完全不同的概念。