CVE-2026-23395Linux内核蓝牙子系统的L2CAP模块中存在一个安全漏洞。由于代码在接受L2CAP_ECRED_CONN_REQ请求时未正确检查命令标识符,攻击者可以利用蓝牙邻接网络发送使用相同标识符的多个请求。这导致系统错误地将多个请求标记为待处理,从而在l2cap_ecred_rsp_defer函数中分配超过L2CAP_ECRED_MAX_CID(5)限制的通道,引发缓冲区溢出,可能导致系统崩溃或潜在的权限提升。
该漏洞位于Linux内核处理L2CAP(逻辑链路控制和适配协议)连接请求的代码中。根据蓝牙规范,每个连续的请求都应使用不同的标识符。然而,漏洞代码在处理L2CAP_ECRED_CONN_REQ时,仅根据SCID(源通道标识符)查找通道,未校验请求中的命令标识符是否已被用于当前待处理的连接。攻击者通过发送多个具有相同标识符的请求,可以欺骗内核设置FLAG_DEFER_SETUP标志,导致pending链表中超过5个通道。当内核在l2cap_ecred_rsp_defer中处理响应时,会遍历这些pending通道,由于数量超过预设的最大值,导致数组越界访问和堆缓冲区溢出。