首页 网络安全 正文
  • 本文约1448字,阅读需7分钟
  • 109
  • 0

BlueZ HID over GATT Profile代码执行漏洞CVE-2024-8805

摘要

栋科技漏洞库关注到 BlueZ HID over GATT配置文件存在不当访问控制远程代码执行漏洞,漏洞追踪为CVE-2024-8805,CVSS评分8.8。

BlueZ 是官方 Linux Bluetooth 栈,在Linux系统中扮演着重要角色,作为Linux系统的官方蓝牙协议栈,提供对蓝牙硬件的访问和控制能力。

Bluez作为一个开源项目而遵循GPL许可,跟随蓝牙技术发展不断更新升级,以支持蓝牙技术最新标准,如Bluetooth Low Energy(BLE)。

一、基本情况

Bluez提供一整套蓝牙协议栈,包括但不限于核心协议、控制器接口、数据传输协议等,不仅支持传统的蓝牙设备连接,也支持BLE设备。

HID OVER GATT Profile 是蓝牙组织规定的标准的profile之一,profile则可以理解为是一种规范、一个标准的通信协议,它存在于从机中。

BlueZ HID over GATT Profile代码执行漏洞CVE-2024-8805

栋科技漏洞库关注到 BlueZ HID over GATT配置文件存在不当访问控制远程代码执行漏洞,漏洞追踪为CVE-2024-8805,CVSS评分8.8。

二、漏洞分析

CVE-2024-8805漏洞是BlueZ HID over GATT配置文件存在不当访问控制远程代码执行漏洞,具体存在于HID over GATT配置文件实现中。

CVE-2024-8805漏洞源于在允许访问功能之前没有进行授权而导致,漏洞允许允许网络相邻的攻击者在BlueZ受影响安装上执行任意代码。

攻击者可以利用该漏洞在当前用户上下文中执行代码,且需要注意的是,利用该漏洞不需要进行身份验证,具体修复示例代码如下所示:

diff --git a/client/main.c b/client/main.c
index a96a4263849d..2a5c7527bc6c 100644
--- a/client/main.c
+++ b/client/main.c
@@ -1095,6 +1095,7 @@  static void cmd_pairable(int argc, char *argv[])

 static void cmd_discoverable(int argc, char *argv[])
 {
+    DBusMessageIter iter;
     dbus_bool_t discoverable;
     char *str;

@@ -1104,6 +1105,18 @@  static void cmd_discoverable(int argc, char *argv[])
     if (check_default_ctrl() == FALSE)
         return bt_shell_noninteractive_quit(EXIT_FAILURE);

+    if (discoverable && g_dbus_proxy_get_property(default_ctrl->proxy,
+                    "DiscoverableTimeout", &iter)) {
+        uint32_t value;
+
+        dbus_message_iter_get_basic(&iter, &value);
+
+        if (!value)
+            bt_shell_printf("Warning: setting discoverable while "
+                    "discoverable-timeout not set(0) is not"
+                    " recommended\n");
+    }
+
     str = g_strdup_printf("discoverable %s",
                 discoverable == TRUE ? "on" : "off");

三、漏洞影响

未知

四、修复建议

建议更新当前系统或软件至最新版

五、参考链接

https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=41f943630d9a

评论
更换验证码
友情链接