这个漏洞本质上是 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风险”

这是两个完全不同的概念。

Comments

Be the first to add a comment