CVE-2026-74501: ALSA: usb-audio: fix use-after-free in ump_to_endpoint()

Greg Kroah-Hartman <[email protected]>
Newsgroups org.kernel.vger.linux-cve-announce
Message-ID <2026081540-CVE-2026-74501-a915@gregkh>
From: Greg Kroah-Hartman <[email protected]>

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

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

ALSA: usb-audio: fix use-after-free in ump_to_endpoint()

create_midi2_ump() registers a card-owned snd_ump_endpoint and stores a
back-pointer to its per-interface snd_usb_midi2_ump object in
ump->private_data, but it never installs an ump->private_free hook and
never clears that pointer.

If a later step of snd_usb_midi_v2_create() fails, its error path calls
free_all_midi2_umps(), which kfree()s the snd_usb_midi2_ump object while
the already-registered endpoint keeps pointing at it.  The created
/dev/snd/umpC*D* node stays exposed, so the first operation of any UMP
open, ump_to_endpoint(), dereferences the dangling ump->private_data and
reads rmidi->eps[dir] out of freed memory.

A malicious USB MIDI 2.0 device that makes creation fail after the
endpoint is registered can thus trigger a slab use-after-free read on a
subsequent open of the UMP node.

Clear the endpoint's back-pointer before freeing the object, and let
ump_to_endpoint() tolerate a NULL private_data so the open/close/trigger
callbacks fail cleanly (their callers already handle a NULL endpoint)
instead of dereferencing a stale pointer.

Discovered by XBOW, triaged by Baul Lee <[email protected]>

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


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

	Issue introduced in 6.5 with commit ff49d1df79aef7580fe3ac99d17c3f886655d080 and fixed in 6.6.151 with commit 49eccef6d6e1c00dac6fb2e7eb6f9206c33e1c37
	Issue introduced in 6.5 with commit ff49d1df79aef7580fe3ac99d17c3f886655d080 and fixed in 6.12.103 with commit 8a7a33b846d6ba695891b8d0040027cdbad8cd52
	Issue introduced in 6.5 with commit ff49d1df79aef7580fe3ac99d17c3f886655d080 and fixed in 6.18.44 with commit cc014ebf803174f0e5d15956dfc5a38413c945ae
	Issue introduced in 6.5 with commit ff49d1df79aef7580fe3ac99d17c3f886655d080 and fixed in 7.1.8 with commit ae388c0e1bf727972096f770f82d12e4f748d1b6
	Issue introduced in 6.5 with commit ff49d1df79aef7580fe3ac99d17c3f886655d080 and fixed in 7.2-rc6 with commit 4a05b2d1b4642df74f30b6f54843e825c4a2bfd3

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-74501
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/midi2.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/49eccef6d6e1c00dac6fb2e7eb6f9206c33e1c37
	https://git.kernel.org/stable/c/8a7a33b846d6ba695891b8d0040027cdbad8cd52
	https://git.kernel.org/stable/c/cc014ebf803174f0e5d15956dfc5a38413c945ae
	https://git.kernel.org/stable/c/ae388c0e1bf727972096f770f82d12e4f748d1b6
	https://git.kernel.org/stable/c/4a05b2d1b4642df74f30b6f54843e825c4a2bfd3
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.