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