CVE-2026-64487: ALSA: caiaq: fix out-of-bounds read in the Traktor Kontrol S4 input parser
Greg Kroah-Hartman <[email protected]> Sat, 25 Jul 2026 10:51:44 +0200
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026072549-CVE-2026-64487-03f3@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: ALSA: caiaq: fix out-of-bounds read in the Traktor Kontrol S4 input parser snd_usb_caiaq_tks4_dispatch() decodes the Traktor Kontrol S4 input stream in fixed 16-byte (TKS4_MSGBLOCK_SIZE) message blocks. On every iteration it advances buf and subtracts the block size while looping on "while (len)". len is urb->actual_length. That value is supplied by the device and is not guaranteed to be a multiple of 16. When a final short block leaves len between 1 and 15, the loop runs once more, reads up to buf[15], and then does "len -= TKS4_MSGBLOCK_SIZE". As len is unsigned this underflows to a huge value. The loop then keeps iterating and walking buf far past the end of the 512-byte ep4_in_buf, reading out of bounds until a bogus block id happens to be hit. Iterate only while a full message block is available. This stops the unsigned underflow and silently drops any trailing partial block, which carries no complete control value anyway. The sibling endpoint-4 parsers are not affected. The Traktor Kontrol X1 and Maschine arms in snd_usb_caiaq_ep4_reply_dispatch() floor urb->actual_length before dispatching. The Linux kernel CVE team has assigned CVE-2026-64487 to this issue. Affected and fixed versions =========================== Issue introduced in 2.6.37 with commit 15c5ab607045e278ebf4d2ca4aea2250617d50ca and fixed in 5.10.261 with commit de5f9edc705497b1b2c6b173b22f283486d2fd91 Issue introduced in 2.6.37 with commit 15c5ab607045e278ebf4d2ca4aea2250617d50ca and fixed in 5.15.212 with commit 70d6d4cfa4ad09688aed2ec8a0cfa72c31f60334 Issue introduced in 2.6.37 with commit 15c5ab607045e278ebf4d2ca4aea2250617d50ca and fixed in 6.1.178 with commit 884f575cc6acb136eb4a161d925147f85b59c27e Issue introduced in 2.6.37 with commit 15c5ab607045e278ebf4d2ca4aea2250617d50ca and fixed in 6.6.145 with commit 05df59b9a61f7ca66548df079d306c41da23845d Issue introduced in 2.6.37 with commit 15c5ab607045e278ebf4d2ca4aea2250617d50ca and fixed in 6.12.96 with commit 3cad86197c7bf8b45bb1d8adc1099d0913e80469 Issue introduced in 2.6.37 with commit 15c5ab607045e278ebf4d2ca4aea2250617d50ca and fixed in 6.18.39 with commit a5fd3122283bf75c04f6414bf610100beb0565b0 Issue introduced in 2.6.37 with commit 15c5ab607045e278ebf4d2ca4aea2250617d50ca and fixed in 7.1.4 with commit 0680413f2f10aab43878dd3db711a6a9e45bab7c Issue introduced in 2.6.37 with commit 15c5ab607045e278ebf4d2ca4aea2250617d50ca and fixed in 7.2-rc1 with commit f7f3f9fd81e7adbaa12c2e62ee07f0e094a543fd Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-64487 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: sound/usb/caiaq/input.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/de5f9edc705497b1b2c6b173b22f283486d2fd91 https://git.kernel.org/stable/c/70d6d4cfa4ad09688aed2ec8a0cfa72c31f60334 https://git.kernel.org/stable/c/884f575cc6acb136eb4a161d925147f85b59c27e https://git.kernel.org/stable/c/05df59b9a61f7ca66548df079d306c41da23845d https://git.kernel.org/stable/c/3cad86197c7bf8b45bb1d8adc1099d0913e80469 https://git.kernel.org/stable/c/a5fd3122283bf75c04f6414bf610100beb0565b0 https://git.kernel.org/stable/c/0680413f2f10aab43878dd3db711a6a9e45bab7c https://git.kernel.org/stable/c/f7f3f9fd81e7adbaa12c2e62ee07f0e094a543fd