Description
In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: f_midi: cancel pending IN work before freeing the midi object
The f_midi driver embeds a work item (midi->work) whose handler,
f_midi_in_work(), dereferences the enclosing struct f_midi through
container_of(). This work is armed from two sites: f_midi_complete(),
on a normal IN-endpoint completion, and f_midi_in_trigger(), on an ALSA
rawmidi output-stream start.
Neither f_midi_disable() nor f_midi_unbind() cancels midi->work.
f_midi_disable() only disables the endpoints and drains the in_req_fifo;
it does not synchronize the work item, and the sound card is released
asynchronously to the final free of the midi object.
The midi object is reference-counted (midi->free_ref) and is freed in
f_midi_free() only once both the usb_function reference and the rawmidi
private_data reference have been dropped. In f_midi_unbind(),
f_midi_disable() runs before the sound card is released, so while the
USB endpoints are already disabled the rawmidi device is still usable by
an open substream. A concurrent userspace write on such a substream can
reach f_midi_in_trigger() and queue midi->work again after
f_midi_disable() has returned. A work item armed this way may still be
pending when the last reference drops and f_midi_free() proceeds to
kfree(midi), letting f_midi_in_work() dereference the struct after it
has been freed, a use-after-free.
For this reason cancelling midi->work in f_midi_disable() would not be
sufficient: the ALSA trigger path can rearm the work after disable()
returns. Cancelling at the refcount-zero free site is the boundary
after which neither arming source can survive, because by then both
references that keep the midi object alive have been dropped: the USB
endpoints are already disabled and the rawmidi device has been released.
Fix this by calling cancel_work_sync(&midi->work) in the refcount-zero
block of f_midi_free(), before the embedded work_struct is freed along
with the rest of the structure. opts->lock is a sleeping mutex, so
calling cancel_work_sync() under it is permitted, and the handler takes
midi->transmit_lock rather than opts->lock, so no self-deadlock can
occur while it waits for a running instance of the work to finish.
This issue was found by an in-house static analysis tool.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 5.10.235 – < 5.10.265, 5.4.291 – < 5.5, 5.12 | 5.10.265 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 7.1.6-1 | — |
| Debian 13 | linux | 6.12.101-1 | — |
| Debian 12 | linux | 6.1.187-1 | — |
| Debian 12 | linux-6.12 | 6.12.101-1~deb12u1 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Nvidia-BlueField 24.04 LTS | linux-bluefield | 6.8.0-1033.38 | — |
| Ubuntu Nvidia-BlueField 22.04 LTS | linux-bluefield | 5.15.0-1101.103 | — |
| Ubuntu 26.04 LTS | linux | 7.0.0-38.38 | USN-8887-1 |
| Ubuntu 26.04 LTS | linux-aws +1 | 7.0.0-1014.14 | USN-8887-1 |
| Ubuntu 26.04 LTS | linux-azure | 7.0.0-1017.17 | USN-8888-1 |
| Ubuntu 26.04 LTS | linux-azure-fde | 7.0.0-1016.16 | USN-8888-1 |
| Ubuntu 26.04 LTS | linux-gke | 7.0.0-1008.9 | USN-8887-1 |
| Ubuntu 26.04 LTS | linux-ibm +1 | 7.0.0-1015.15 | USN-8889-1, USN-8887-1 |
| Ubuntu 26.04 LTS | linux-nvidia | 7.0.0-1025.26 | USN-9043-1 |
| Ubuntu 26.04 LTS | linux-nvidia-bos | 7.0.0-2022.23 | USN-9003-1 |
| Ubuntu 26.04 LTS | linux-oracle | 7.0.0-1013.13 | USN-8887-1 |
| Ubuntu 26.04 LTS | linux-raspi | 7.0.0-1023.23 | USN-9021-1 |
| Ubuntu 26.04 LTS | linux-riscv +1 | 7.0.0-38.38.1 | USN-8887-1 |
| Ubuntu 24.04 LTS | linux | 6.8.0-147.147 | USN-8917-1 |
| Ubuntu 24.04 LTS | linux-aws +1 | 6.8.0-1067.70 | USN-9024-1, USN-8917-1 |
| Ubuntu 24.04 LTS | linux-aws-7.0 +1 | 7.0.0-1014.14~24.04.1 | USN-8887-3, USN-8887-2 |
| Ubuntu 24.04 LTS | linux-azure-7.0 | 7.0.0-1017.17~24.04.1 | USN-8888-2 |
| Ubuntu 24.04 LTS | linux-azure-fde | 6.8.0-1069.76 | USN-8918-1 |
| Ubuntu 24.04 LTS | linux-azure-fde-7.0 | 7.0.0-1016.16~24.04.1 | USN-8888-2 |
| Ubuntu 24.04 LTS | linux-gcp +1 | 6.8.0-1071.79 | USN-8918-1, USN-8917-1 |
| Ubuntu 24.04 LTS | linux-gke | 6.8.0-1066.74 | USN-8917-1 |
| Ubuntu 24.04 LTS | linux-gkeop | 6.8.0-1052.56 | USN-8917-1 |
| Ubuntu 24.04 LTS | linux-hwe-7.0 | 7.0.0-38.38~24.04.4 | USN-8887-3 |
| Ubuntu 24.04 LTS | linux-ibm | 6.8.0-1067.68 | USN-8917-1 |
| Ubuntu 24.04 LTS | linux-lowlatency | 6.8.0-147.147.1 | USN-8917-1 |
| Ubuntu 24.04 LTS | linux-nvidia-7.0 | 7.0.0-1024.25~24.04.1 | USN-9003-1 |
| Ubuntu 24.04 LTS | linux-nvidia-lowlatency | 6.8.0-1067.70.1 | USN-9040-1 |
| Ubuntu 24.04 LTS | linux-nvidia-tegra | 6.8.0-1036.39 | USN-8886-1 |
| Ubuntu 24.04 LTS | linux-oracle | 6.8.0-1064.67 | USN-8917-1 |
| Ubuntu 24.04 LTS | linux-oracle-7.0 | 7.0.0-1013.13~24.04.1 | USN-8887-3 |
| Ubuntu 24.04 LTS | linux-raspi | 6.8.0-1068.72 | USN-9025-1 |
| Ubuntu 24.04 LTS | linux-riscv +29 | No fix yet | — |
| Ubuntu 24.04 LTS | linux-riscv-7.0 | 7.0.0-38.38.1~24.04.1 | — |
| Ubuntu 24.04 LTS | linux-vmware | 6.8.0-1008.8 | — |
| Ubuntu 22.04 LTS | linux | 5.15.0-198.208 | USN-8875-1 |
| Ubuntu 22.04 LTS | linux-aws | 5.15.0-1117.124 | USN-8875-1 |
| Ubuntu 22.04 LTS | linux-aws-6.8 | 6.8.0-1069.74~22.04.1 | USN-9024-1 |
| Ubuntu 22.04 LTS | linux-azure | 5.15.0-1123.132 | USN-8875-1 |
| Ubuntu 22.04 LTS | linux-azure-6.8 | 6.8.0-1073.82~22.04.1 | USN-9026-1 |
| Ubuntu 22.04 LTS | linux-azure-fde | 5.15.0-1122.131 | USN-8876-1 |
| Ubuntu 22.04 LTS | linux-azure-fde-6.8 | 6.8.0-1071.78~22.04.1 | USN-9026-1 |
| Ubuntu 22.04 LTS | linux-gcp | 5.15.0-1118.128 | USN-8877-1 |
| Ubuntu 22.04 LTS | linux-gcp-6.8 | 6.8.0-1073.81~22.04.1 | USN-9024-1 |
| Ubuntu 22.04 LTS | linux-gke | 5.15.0-1113.119 | USN-8875-1 |
| Ubuntu 22.04 LTS | linux-gkeop | 5.15.0-1100.108 | USN-8875-1 |
| Ubuntu 22.04 LTS | linux-hwe-6.8 | 6.8.0-149.149~22.04.1 | USN-9066-1 |
| Ubuntu 22.04 LTS | linux-ibm | 5.15.0-1111.115 | USN-8875-1 |
| Ubuntu 22.04 LTS | linux-ibm-6.8 | 6.8.0-1069.70~22.04.1 | USN-9024-1 |
| Ubuntu 22.04 LTS | linux-intel-iotg | 5.15.0-1112.118 | USN-8875-1 |
| Ubuntu 22.04 LTS | linux-kvm | 5.15.0-1109.114 | USN-8875-1 |
| Ubuntu 22.04 LTS | linux-lowlatency | 5.15.0-195.205 | USN-8875-1 |
| Ubuntu 22.04 LTS | linux-lowlatency-hwe-6.8 | 6.8.0-149.149.1~22.04.1 | USN-9024-1 |
| Ubuntu 22.04 LTS | linux-nvidia | 5.15.0-1112.113 | USN-8875-2 |
| Ubuntu 22.04 LTS | linux-nvidia-tegra | 5.15.0-1070.72 | USN-8963-1 |
| Ubuntu 22.04 LTS | linux-nvidia-tegra-igx | 5.15.0-1059.59 | USN-8963-1 |
| Ubuntu 22.04 LTS | linux-oracle | 5.15.0-1114.120 | USN-8875-1 |
| Ubuntu 22.04 LTS | linux-oracle-6.8 | 6.8.0-1067.71~22.04.1 | USN-9025-1 |
| Ubuntu 22.04 LTS | linux-raspi | 5.15.0-1113.116 | USN-9029-1 |
| Ubuntu 22.04 LTS | linux-riscv +33 | No fix yet | — |
| Ubuntu 22.04 LTS | linux-xilinx-zynqmp | 5.15.0-1080.84 | USN-8875-1 |
Show 11 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 20.04 LTS | linux-gke +28 | No fix yet | — |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
| Ubuntu Pro Realtime 24.04 LTS | linux-raspi-realtime | 6.8.0-2056.58 | USN-9025-1 |
| Ubuntu Pro Realtime 24.04 LTS | linux-realtime | 6.8.1-1062.63 | USN-8917-1 |
| Ubuntu Pro Realtime 24.04 LTS | linux-realtime-6.14 +1 | No fix yet | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-intel-iot-realtime | 5.15.0-1109.111 | USN-8875-1 |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime | 5.15.0-1116.125 | USN-8875-1 |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime-6.8 | 6.8.1-1064.65~22.04.1 | USN-9024-1 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-aws-fips | 6.8.0-1067.70+fips1 | USN-8917-1 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-fips | 6.8.0-147.147+fips1 | USN-8917-1 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-gcp-fips +1 | 6.8.0-1071.79+fips1 | USN-8918-1, USN-8917-1 |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-aws-fips | 5.15.0-1117.124+fips1 | USN-8875-1 |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-azure-fips | 5.15.0-1123.132+fips1 | USN-8875-1 |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-fips | 5.15.0-198.208+fips1 | USN-8875-1 |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-gcp-fips | 5.15.0-1118.128+fips1 | USN-8877-1 |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-preview 22.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro 20.04 LTS | linux +10 | No fix yet | — |
| Ubuntu Pro 20.04 LTS | linux-aws-5.15 | 5.15.0-1117.124~20.04.1 | USN-8875-1 |
| Ubuntu Pro 20.04 LTS | linux-azure-5.15 | 5.15.0-1123.132~20.04.1 | USN-8875-1 |
| Ubuntu Pro 20.04 LTS | linux-azure-fde-5.15 | 5.15.0-1122.131~20.04.1 | USN-8875-1 |
| Ubuntu Pro 20.04 LTS | linux-gcp-5.15 | 5.15.0-1118.128~20.04.1 | USN-8878-1 |
| Ubuntu Pro 20.04 LTS | linux-hwe-5.15 | 5.15.0-198.208~20.04.1 | USN-8875-1 |
| Ubuntu Pro 20.04 LTS | linux-ibm-5.15 +1 | 5.15.0-1111.115~20.04.1 | USN-8875-1 |
| Ubuntu Pro 20.04 LTS | linux-intel-iotg-5.15 | 5.15.0-1112.118~20.04.1 | USN-8875-1 |
| Ubuntu Pro 20.04 LTS | linux-lowlatency-hwe-5.15 | 5.15.0-195.205~20.04.1 | USN-8875-1 |
| Ubuntu Pro 20.04 LTS | linux-nvidia-tegra-5.15 | 5.15.0-1070.72~20.04.1 | USN-8963-1 |
| Ubuntu Pro 20.04 LTS | linux-oracle-5.15 | 5.15.0-1114.120~20.04.1 | USN-8879-1 |
| Ubuntu Pro 18.04 LTS | linux-aws-5.4 +6 | No fix yet | — |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP7 | kernel-64kb +7 | 6.4.0-150700.53.81.1 | SUSE-SU-2026:4254-1 |
| SLES 15 SP7 | kernel-default-base | 6.4.0-150700.53.81.1.150700.17.45.1 | SUSE-SU-2026:4254-1 |
Show 7 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES for SAP 16.0 | kernel-64kb +8 | 6.12.0-160000.38.1 | SUSE-SU-2026:23902-1 |
| SLES for SAP 16.0 | kernel-default-base | 6.12.0-160000.38.1.160000.2.23 | SUSE-SU-2026:23902-1 |
| SLES 16.0 | kernel-64kb +8 | 6.12.0-160000.38.1 | SUSE-SU-2026:23902-1, SUSE-SU-2026:23897-1 |
| SLES 16.0 | kernel-default-base | 6.12.0-160000.38.1.160000.2.23 | SUSE-SU-2026:23902-1 |
| SLE Micro 6.2 | kernel-default-base | 6.12.0-160000.38.1.160000.2.23 | SUSE-SU-2026:23887-1 |
| SLE Micro 6.2 | kernel-rt +5 | 6.12.0-160000.38.1 | SUSE-SU-2026:23887-1, SUSE-SU-2026:23881-1 |
| SLE Micro 6.1 | kernel-default-base | 6.4.0-52.1.21.34 | SUSE-SU-2026:23529-1 |
| SLE Micro 6.1 | kernel-rt +4 | 6.4.0-52.1 | SUSE-SU-2026:23529-1, SUSE-SU-2026:23528-1 |
| SLE Micro 6.0 | kernel-default-base | 6.4.0-52.1.21.36 | SUSE-SU-2026:23481-1 |
| SLE Micro 6.0 | kernel-rt +4 | 6.4.0-52.1 | SUSE-SU-2026:23481-1, SUSE-SU-2026:23477-1 |
| SLE Live Patching 15 SP7 | kernel-default | 6.4.0-150700.53.81.1 | SUSE-SU-2026:4254-1 |
| SLE Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7-RT_Update_20 | 1-150700.1.3.1 | SUSE-SU-2026:4120-1 |
| SLE Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7_Update_21 | 1-150700.15.3.1 | SUSE-SU-2026:4254-1 |
| SUSE Real Time Module 15 SP7 | kernel-rt +2 | 6.4.0-150700.7.75.1 | SUSE-SU-2026:4120-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Tumbleweed | kernel-source | 7.1.7-1.1 | openSUSE-SU-2026:11476-1 |
| openSUSE Leap 16.0 | kernel-default-base | 6.12.0-160000.38.1.160000.2.22 | openSUSE-SU-2026:21910-1 |
| openSUSE Leap 16.0 | kernel-rt +11 | 6.12.0-160000.38.1 | openSUSE-SU-2026:21910-1 |
Advisories 38
- USN-9066-1 linux-hwe-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-9021-1 linux-raspi vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-9024-1 linux-aws-6.8, linux-gcp-6.8, linux-ibm-6.8, linux-lowlatency-hwe-6.8, linux-nvidia, linux-realtime-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-9026-1 linux-azure-6.8, linux-azure-fde-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- WID-SEC-2026-2680 Linux Kernel: Mehrere Schwachstellen BSI CERT-Bund (WID) · Nov 12, 2026
- USN-9040-1 linux-nvidia-lowlatency vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-9043-1 linux-nvidia vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8875-1 linux, linux-aws, linux-aws-5.15, linux-aws-fips, linux-azure, linux-azure-5.15, linux-azure-fde-5.15, linux-azure-fips, linux-fips, linux-gke, linux-gkeop, linux-hwe-5.15, linux-ibm, linux-ibm-5.15, linux-intel-iot-realtime, linux-intel-iotg, linux-intel-iotg-5.15, linux-kvm, linux-lowlatency, linux-lowlatency-hwe-5.15, linux-oracle, linux-realtime, linux-xilinx-zynqmp vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8963-1 linux-nvidia-tegra, linux-nvidia-tegra-5.15, linux-nvidia-tegra-igx vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8917-1 linux, linux-aws, linux-aws-fips, linux-fips, linux-gcp, linux-gcp-fips, linux-gke, linux-gkeop, linux-ibm, linux-lowlatency, linux-oracle, linux-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-9025-1 linux-oracle-6.8, linux-raspi, linux-raspi-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8887-1 linux, linux-aws, linux-gcp, linux-gke, linux-ibm, linux-oracle, linux-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-9029-1 linux-raspi vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8887-3 linux-gcp-7.0, linux-hwe-7.0, linux-oracle-7.0 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-9003-1 linux-nvidia-7.0, linux-nvidia-bos vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8888-2 linux-azure-7.0, linux-azure-fde-7.0 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8879-1 linux-oracle-5.15 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8918-1 linux-azure, linux-azure-fde, linux-azure-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8888-1 linux-azure, linux-azure-fde vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8887-2 linux-aws-7.0 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8875-2 linux-nvidia vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8878-1 linux-gcp-5.15 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8889-1 linux-oem-7.0 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8886-1 linux-nvidia-tegra vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8877-1 linux-gcp, linux-gcp-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8876-1 linux-azure-fde vulnerabilities Ubuntu Security Notices (USN) · Nov 9, 2026
- SUSE-SU-2026:4254-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Oct 8, 2026
- SUSE-SU-2026:23902-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 30, 2026
- SUSE-SU-2026:23897-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 30, 2026
- SUSE-SU-2026:23881-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 30, 2026
- SUSE-SU-2026:23887-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 30, 2026
- openSUSE-SU-2026:21910-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 25, 2026
- SUSE-SU-2026:23528-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 15, 2026
- SUSE-SU-2026:23529-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 15, 2026
- SUSE-SU-2026:23477-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 14, 2026
- SUSE-SU-2026:4120-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 14, 2026
- SUSE-SU-2026:23481-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 14, 2026
- openSUSE-SU-2026:11476-1 kernel-devel-7.1.7-1.1 on GA media SUSE / openSUSE Security Updates · Aug 10, 2026
References
- https://git.kernel.org/stable/c/f3c6f2c38062703d3dc7f86958bb0790c6959add
- https://git.kernel.org/stable/c/df18150126f66817e4d3f79f309e9c92d6ff384e
- https://git.kernel.org/stable/c/620955b222c47332297d6bf38f78541aa699238a
- https://git.kernel.org/stable/c/380b4bef46c2eb260c7a9c6bb2c5be33ce5a38f9
- https://git.kernel.org/stable/c/87bc316dd6fc90072297c635e10b9aa6075ecda1
- https://git.kernel.org/stable/c/f45089eaad0a083d71d84ff175741d7e157d9b69
- https://git.kernel.org/stable/c/ac9a51d910bb7465c554c45320cb6c09f3d0b49d
- https://git.kernel.org/stable/c/5650c18d93a1db7e27cb5a40b394747eb4686d5b