
SkySafe软件工程师Marc Newlin发现了一个新的蓝牙安全漏洞CVE-2023-45866,涉及未经认证的蓝牙键盘注入攻击,影响的系统包括Android、Linux、macOS和iOS。 Marc Newlin提到,这个漏洞看起来包含协议的设计缺陷,而非单纯的实作错误。
Marc Newlin发现多个蓝牙堆叠实作具有可以绕过身份验证的漏洞CVE-2023-45866,允许攻击者在无需用户确认的情况下,连接到目标主机,并且注入按键指令。 这代表攻击者可以从远程执行各种操作,就像是使用受害者设备上的键盘一样,执行应用程序安装、任意命令、转发消息,以及其他恶意行为都没问题。 该攻击行动不需要复杂的硬件,只需要一台配备有蓝牙连接器的Linux电脑就可以完成。
Marc Newlin最先在Apple设备的macOS和iOS中,发现这个未经授权的蓝牙按键注入漏洞,两者都可以在装置封闭模式(Lockdown Mode)下被滥用。 Marc Newlin之后又在Linux和Android中找到类似的漏洞。
Marc Newlin解释,这些漏洞的运作原理,是能够在未经用户确认的情况下,欺骗蓝牙主机状态机和假键盘配对。 由于蓝牙规范中定义了底层未经身分验证的配对机制,而实作错误便会将其暴露给攻击者,导致无论是Android、Linux、macOS还是iOS,在特定状态都容易受到攻击。
Android设备只要一启用蓝牙,就容易受到攻击,而Linux则是在蓝牙进入可探索状态时,才容易被攻击,iOS和macOS则是要在启用蓝牙,并且巧控键盘已经与手机或是电脑配对时,容易遭受恶意攻击。 一旦攻击者和目标装置配对完成,便可以执行按键注入攻击,以受害者身份执行任意操作,而且这些操作不需要经过密码或是生物识别身份验证。
CVE-2023-45866是一个存在时间有点久的漏洞,Marc Newlin甚至可以在2012年发布的Android 4.2.2上重现蓝牙按键注入攻击。 目前Google已经在12月5日的安全更新,对Android 11以上版本提供修复该漏洞的程序,但是并未修复Android 4.2.2-10版本。
Linux系统漏洞则在2020年修补CVE-2020-0556漏洞时,修掉这个蓝牙按键注入漏洞,但该修补预设不启用,Marc Newlin指出,ChromeOS是唯一已知启用该修补的Linux操作系统,Google也回应ChromeOS不受CVE-2023-45866漏洞影响。 官方Linux蓝牙协议堆叠BlueZ则是在2020年修补该漏洞,并默认为启用,因此只要更新BlueZ版本将会自动启用该修补,可以保护Linux系统免受这类蓝牙漏洞影响。
Marc Newlin测试了macOS 13.3.3、macOS 12.6.7和iOS 16.6版本,皆存在CVE-2023-45866漏洞,而且即便用户启用封闭模式也无法避免攻击者滥用该漏洞,Marc Newlin在2023年8月的时候向Apple回报了这项漏洞,目前尚未有更新释出。