CVE-2026-72443

Source
https://cve.org/CVERecord?id=CVE-2026-72443
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-72443.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-72443
Downstream
Published
2026-08-15T05:56:54.601Z
Modified
2026-08-16T03:48:53.812854868Z
Summary
ALSA: usb-audio: Kill MIDI 2.0 URBs before freeing endpoints
Details

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

ALSA: usb-audio: Kill MIDI 2.0 URBs before freeing endpoints

MIDI 2.0 input URBs are started during sndusbmidiv2create(). A later setup failure can still jump to sndusbmidiv2free(), which currently frees each endpoint and its coherent URB buffers without first stopping the submitted URBs. A completion can then dereference the embedded URB context and endpoint state after they have been freed, or try to resubmit from the stale endpoint.

This was observed as a KASAN slab-use-after-free in inputurbcomplete().

The buggy scenario involves two paths, with each column showing the order within that path:

probe error path: USB completion path: 1. startinputstreams() submits 1. The HCD still owns a input URBs. submitted input URB. 2. A later setup helper returns 2. inputurbcomplete() runs an error. with urb->context in ep. 3. sndusbmidiv2free() frees 3. The completion reads ep endpoint storage and URB buffers. state and can requeue URBs.

Make the endpoint destructor follow the same teardown ordering used for disconnect when the endpoint has not already been disconnected: publish ep->disconnected, kill the URBs synchronously, and drain the endpoint before freeing URB buffers and endpoint storage. The guard avoids repeating the stop sequence after the normal sndusbmidiv2disconnect_all() path, while still synchronizing the direct MIDI 2.0 create-error free path.

Validation reproduced this kernel report: BUG: KASAN: slab-use-after-free in inputurbcomplete+0x37/0x1b0 Workqueue: usbhubwq hubevent RIP: 0010:rawspinunlockirq+0x2e/0x50 Read of size 8 Call trace: dumpstacklvl+0x77/0xb0 printreport+0xce/0x5f0 inputurbcomplete+0x37/0x1b0 (sound/usb/midi2.c:186) srsoaliasreturn_thunk+0x5/0xfbef5 __virtaddrvalid+0x19f/0x330 kasan_report+0xe0/0x110 __usbhcdgivebackurb+0x112/0x1d0 dummytimer+0xaaa/0x19a0 lockisheld_type+0x9a/0x110 __lockacquire+0x467/0x28b0 markheldlocks+0x40/0x70 rawspinunlockirqrestore+0x44/0x60 lockdephardirqsonprepare+0xbb/0x1a0 __hrtimerrunqueues+0x101/0x520 hrtimer_runsoftirq+0xd0/0x130 handlesoftirqs+0x15b/0x670 _irqexitrcu+0xd0/0x170 irqexitrcu+0xe/0x20 sysvecapictimerinterrupt+0x6c/0x80 asmsysvecapictimerinterrupt+0x1a/0x20

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/72xxx/CVE-2026-72443.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
d9c99876868c861afd0e9ce2cea407bbc446b3c9
Fixed
bcdd5a7363bdd287253c406a9c0205f5722058e7
Fixed
3d961032a6e58fa485b3a4c0fe0f649334d887de
Fixed
4c16176fc11a61b7545464cb47c98b0c8a055fcb
Fixed
68286258698e15fe75073fb8d017003f8e493db1
Fixed
f199c8a8bdd54296d3458777e70fe82a78bd9817

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-72443.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.5.0
Fixed
6.6.145
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.97
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.40
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.1.5

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-72443.json"