CVE-2026-31778Linux内核中的ALSA caiaq驱动程序存在安全漏洞。在初始化音频卡时,对设备名称的边界检查存在差一错误,导致空终止符可能被覆盖。当处理包含特定字符的USB设备名称时,系统会读取堆栈缓冲区外的内存,引发内核崩溃或潜在的信息泄露。该漏洞CVSS评分为7.1,属于高危漏洞,攻击者需具有本地访问权限或能够插入特制USB设备。
该漏洞位于Linux内核的`sound/usb/caiaq/audio.c`文件中的`init_card`函数。漏洞成因是循环边界检查`len < sizeof(card->id)`(16字节)未考虑到字符串终止符的空间。当USB设备产品名称包含16个非空字符时,复制操作会覆盖缓冲区末尾的空字节。随后,当该非空终止字符串传递给`snd_card_set_id` -> `copy_valid_id_string`时,扫描操作会越过缓冲区边界读取栈上数据。攻击者可以通过插入包含多字节UTF-8字符的特制USB设备来可靠触发此漏洞,导致KASAN报告堆栈越界错误。