All of lore.kernel.org
 help / color / mirror / Atom feed
* CVE-2026-98006: ALSA: caiaq: Decoupling ep1_in_urb in caiaq dev
@ 2026-09-25 10:25 Greg Kroah-Hartman
  0 siblings, 0 replies; only message in thread
From: Greg Kroah-Hartman @ 2026-09-25 10:25 UTC (permalink / raw)
  To: linux-cve-announce; +Cc: Greg Kroah-Hartman

From: Greg Kroah-Hartman <gregkh@kernel.org>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

ALSA: caiaq: Decoupling ep1_in_urb in caiaq dev

The epq_in_urb object belonging to the caiaq device is coupled within
the struct snd_usb_caiaqdev. After usb_submit_urb(epq_in_urb, GFP_KERNEL)
executes successfully, epq_in_urb is successfully added to the urbp_list
queue of the dummy HCD driver (userspace specifies dummy_hcd as the HCD
layer driver for the caiaq USB device).

When init_card() calls snd_usb_caiaq_send_command() which subsequently
fails due to a timeout, and proceeds to call snd_card_free() to release
the card, the embedded ep1_in_urb object is also freed. When the dummy
HCD driver detects that the URB has been unlinked, it returns the URB
(by usb_hcd_giveback_urb()), which triggers [1].

Decouple the ep1_in_urb object from the struct snd_usb_caiaqdev and switch
to using a pointer instead. Separately allocate and manage the memory for
ep1_in_urb to prevent the release of the snd_card memory object from
interfering with it.

midi_out_urb has the same issue as ep1_in_urb and is handled in the same
way.

[1]
BUG: KASAN: slab-use-after-free in usb_free_urb+0x24/0x120 drivers/usb/core/urb.c:96
Write of size 4 at addr ffff88803cee1050 by task ktimers/1/29
Call Trace:
 usb_free_urb+0x24/0x120 drivers/usb/core/urb.c:96
 dummy_timer+0xaac/0x4d50 drivers/usb/gadget/udc/dummy_hcd.c:2019
 __run_hrtimer kernel/time/hrtimer.c:2067 [inline]
 __hrtimer_run_queues+0x3eb/0xaf0 kernel/time/hrtimer.c:2124
 hrtimer_run_softirq+0x1e1/0x2e0 kernel/time/hrtimer.c:2141

Allocated by task 36:
 snd_card_new+0x7b/0x110 sound/core/init.c:184
 create_card sound/usb/caiaq/device.c:429 [inline]
 snd_probe+0x236/0x1af0 sound/usb/caiaq/device.c:544

Freed by task 36:
 snd_card_free_when_closed sound/core/init.c:630 [inline]
 snd_card_free+0x138/0x1d0 sound/core/init.c:662
 snd_probe+0x162b/0x1af0 sound/usb/caiaq/device.c:553

The Linux kernel CVE team has assigned CVE-2026-98006 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 2.6.22 with commit 523f1dce37434a9a6623bf46e7893e2b4b10ac3c and fixed in 6.12.111 with commit d6dd3c915b0d02457711d8fbaa60efc52144557f
	Issue introduced in 2.6.22 with commit 523f1dce37434a9a6623bf46e7893e2b4b10ac3c and fixed in 6.18.53 with commit 0c1b907d5db2f3508375776e5b78d69591aa5626
	Issue introduced in 2.6.22 with commit 523f1dce37434a9a6623bf46e7893e2b4b10ac3c and fixed in 7.2.7 with commit d41e6c1533f09b27fc562260d41417490d2b6084
	Issue introduced in 2.6.22 with commit 523f1dce37434a9a6623bf46e7893e2b4b10ac3c and fixed in 7.3-rc3 with commit 402a9d6aab7ac787ab075adeb562c3db8b8f564b

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-98006
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/device.c
	sound/usb/caiaq/device.h
	sound/usb/caiaq/midi.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/d6dd3c915b0d02457711d8fbaa60efc52144557f
	https://git.kernel.org/stable/c/0c1b907d5db2f3508375776e5b78d69591aa5626
	https://git.kernel.org/stable/c/d41e6c1533f09b27fc562260d41417490d2b6084
	https://git.kernel.org/stable/c/402a9d6aab7ac787ab075adeb562c3db8b8f564b

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-25 10:32 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-25 10:25 CVE-2026-98006: ALSA: caiaq: Decoupling ep1_in_urb in caiaq dev Greg Kroah-Hartman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.