CVE-2026-31772Linux内核的蓝牙HCI同步处理中存在一个严重的栈缓冲区溢出漏洞。该漏洞位于`hci_le_big_create_sync`函数中,由于定义的栈缓冲区大小(17个BIS条目)小于实际允许输入的最大数量(31个BIS条目),导致在复制数据时发生越界写入。本地低权限攻击者可通过特定的ISO socket操作触发此漏洞,造成内核内存破坏,可能导致系统崩溃或权限提升。
漏洞根源在于`net/bluetooth/hci_sync.c`中的`hci_le_big_create_sync`函数。该函数使用`DEFINE_FLEX`分配栈空间,错误地将BIS条目上限硬编码为0x11(17)。然而,调用路径`hci_conn_big_create_sync`仅验证了`conn->num_bis`不超过`ISO_MAX_NUM_BIS`(31)。当攻击者通过socket接口传入大于17的BIS数量(例如31)并调用`listen()`时,内核会执行`memcpy`操作,将最多31个条目的数据复制到仅能容纳17个条目的栈缓冲区中。这导致了多达14字节的栈溢出,覆盖了函数返回地址或其他局部变量,破坏了内核栈的完整性。CVSS 3.1向量为AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H,表明攻击者需本地访问且无需用户交互即可造成严重影响。