CVE-2026-31513Linux内核蓝牙子系统的L2CAP模块存在栈越界读取漏洞。攻击者无需认证即可发送恶意构造的增强型基于信用的连接请求包,利用边界检查逻辑缺陷导致内核处理函数读取超出栈缓冲区大小的数据。该漏洞无需用户交互即可触发,成功利用可引发系统内核崩溃或敏感信息泄露,严重破坏系统可用性。
该漏洞源于Linux内核`l2cap_ecred_conn_req`函数在处理Enhanced Credit Based Connection Request时的逻辑缺陷。函数在栈上分配了大小为18字节的局部缓冲区`pdu`,设计用于存储最多5个SCID。然而,代码在验证输入数据包中SCID数量是否超过`L2CAP_ECRED_MAX_CID`之前,就根据攻击者可控的`cmd_len`计算了响应长度`rsp_len`。当SCID数量超标时,函数虽然跳转至拒绝处理流程,但未重置`rsp_len`,导致其保留了过大的值。随后在调用`l2cap_send_cmd`发送拒绝响应时,内核试图从18字节的栈缓冲区中读取超出边界的数据,触发KASAN检测并导致系统崩溃。