All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-cve-announce@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@kernel.org>
Subject: CVE-2026-80815: ALSA: scarlett2: Use a private URB for the notification endpoint
Date: Fri,  4 Sep 2026 17:11:54 +0200	[thread overview]
Message-ID: <2026090412-CVE-2026-80815-4fd4@gregkh> (raw)

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

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

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

ALSA: scarlett2: Use a private URB for the notification endpoint

scarlett2_init_notify() used mixer->urb, which
snd_usb_mixer_status_create() allocates for the UAC2 status interrupt
endpoint and mixer.c manages. On a device with that endpoint, the
"already in use" check fires on the status URB and returns 0 for
success without doing anything. No notification URB is submitted, and
cmd_done is left zeroed because it is initialised past that check and
nowhere else. scarlett2_usb_init() then issues SCARLETT2_USB_INIT_1
and wait_for_completion_timeout() would crash adding to the zeroed
wait.head.

Use a separate URB in scarlett2_data, as done for FCP, and initialise
cmd_done in scarlett2_init_private(). mixer.c was also freeing the URB
in snd_usb_mixer_free() and resubmitting it in
snd_usb_mixer_activate(), so scarlett2 must now do both: add
scarlett2_cleanup_urb(), called from private_free and private_suspend,
and a private_resume callback to re-establish the URB after resume.
scarlett2_init_notify() is reached from there, and the URB kill path
in scarlett2_notify() completes cmd_done, leaving a stale count that
would satisfy the next command's wait before the device ACKs. Use
reinit_completion() to clear it.

Also free the URB if the transfer buffer allocation fails, and both if
usb_submit_urb() fails. Move scarlett2_init_notify() up next to
scarlett2_cleanup_urb() so scarlett2_init_private() can reference it
without a forward declaration.

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


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

	Issue introduced in 6.10 with commit 1b65088958cadab04d5d34a8615e2466b1b48ecb and fixed in 6.12.106 with commit 013448eb7b0d0b91d6168685dab10e9b41baa825
	Issue introduced in 6.10 with commit 1b65088958cadab04d5d34a8615e2466b1b48ecb and fixed in 6.18.47 with commit 4305e4b52acc0ca67dcfdf8f73dd943dab508ae8
	Issue introduced in 6.10 with commit 1b65088958cadab04d5d34a8615e2466b1b48ecb and fixed in 7.1.11 with commit 04df0232a6976845cd9c9e83b6c26215759be667
	Issue introduced in 6.10 with commit 1b65088958cadab04d5d34a8615e2466b1b48ecb and fixed in 7.2.1 with commit ecd2f83a4ddc078901e7104144cb6c5e5db3b7cf
	Issue introduced in 6.10 with commit 1b65088958cadab04d5d34a8615e2466b1b48ecb and fixed in 7.3-rc1 with commit cd17d6ff7b7d2b1dd9bcc80ae7b4a83773f918c6

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-80815
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/mixer.c
	sound/usb/mixer.h
	sound/usb/mixer_scarlett2.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/013448eb7b0d0b91d6168685dab10e9b41baa825
	https://git.kernel.org/stable/c/4305e4b52acc0ca67dcfdf8f73dd943dab508ae8
	https://git.kernel.org/stable/c/04df0232a6976845cd9c9e83b6c26215759be667
	https://git.kernel.org/stable/c/ecd2f83a4ddc078901e7104144cb6c5e5db3b7cf
	https://git.kernel.org/stable/c/cd17d6ff7b7d2b1dd9bcc80ae7b4a83773f918c6

                 reply	other threads:[~2026-09-04 15:19 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2026090412-CVE-2026-80815-4fd4@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=cve@kernel.org \
    --cc=gregkh@kernel.org \
    --cc=linux-cve-announce@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.