In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: uvc: fix NULL pointer dereference during unbind race
Commit b81ac4395bbe ("usb: gadget: uvc: allow for application to cleanly shutdown") introduced two stages of synchronization waits totaling 1500ms in uvc_function_unbind() to prevent several types of kernel panics. However, this timing-based approach is insufficient during power management (PM) transitions.
When the PM subsystem starts freezing user space processes, the wait_event_interruptible_timeout() is aborted early, which allows the unbind thread to proceed and nullify the gadget pointer (cdev->gadget = NULL):
[ 814.123447][ T947] configfs-gadget.g1 gadget.0: uvc: uvc_function_unbind() [ 814.178583][ T3173] PM: suspend entry (deep) [ 814.192487][ T3173] Freezing user space processes [ 814.197668][ T947] configfs-gadget.g1 gadget.0: uvc: uvc_function_unbind no clean disconnect, wait for release
When the PM subsystem resumes or aborts the suspend and tasks are restarted, the V4L2 release path is executed and attempts to access the already nullified gadget pointer, triggering a kernel panic:
[ 814.292597][ C0] PM: pm_system_irq_wakeup: 479 triggered dhdpcie_host_wake [ 814.386727][ T3173] Restarting tasks ... [ 814.403522][ T4558] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000030 [ 814.404021][ T4558] pc : usb_gadget_deactivate+0x14/0xf4 [ 814.404031][ T4558] lr : usb_function_deactivate+0x54/0x94 [ 814.404078][ T4558] Call trace: [ 814.404080][ T4558] usb_gadget_deactivate+0x14/0xf4 [ 814.404083][ T4558] usb_function_deactivate+0x54/0x94 [ 814.404087][ T4558] uvc_function_disconnect+0x1c/0x5c [ 814.404092][ T4558] uvc_v4l2_release+0x44/0xac [ 814.404095][ T4558] v4l2_release+0xcc/0x130
Address the race condition and NULL pointer dereference by:
1. State Synchronization (flag + mutex) Introduce a 'func_unbound' flag in struct uvc_device. This allows uvc_function_disconnect() to safely skip accessing the nullified cdev->gadget pointer. As suggested by Alan Stern, this flag is protected by a new mutex (uvc->lock) to ensure proper memory ordering and prevent instruction reordering or speculative loads. This mutex is also used to protect 'func_connected' for consistent state management.
2. Explicit Synchronization (completion) Use a completion to synchronize uvc_function_unbind() with the uvc_vdev_release() callback. This prevents Use-After-Free (UAF) by ensuring struct uvc_device is freed after all video device resources are released.
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linuxUpgrade linux-6.1 | May 3, 2026 | May 3, 2026 |
| Ubuntu | — | Upgrade linux-image-5.15.0-1112-aws-fipsUpgrade linux-image-6.8.0-1033-xilinxUpgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-5.15.0-1112-awsUpgrade linux-image-lowlatency-64kUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-5.15.0-1075-xilinx-zynqmpUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.15.0-1107-intel-iotgUpgrade linux-image-nvidiaUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-6.8.0-136-lowlatencyUpgrade linux-image-6.8.0-1064-gcp-fipsUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-lowlatency-6.8Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-oem-20.04Upgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-5.15.0-184-lowlatency-64kUpgrade linux-image-gke-5.15Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-aws-5.15Upgrade linux-image-6.8.0-1061-raspiUpgrade linux-image-aws-lts-22.04Upgrade linux-image-5.15.0-1112-gcpUpgrade linux-image-azure-lts-24.04Upgrade linux-image-raspi-nolpaeUpgrade linux-image-5.15.0-1095-gkeopUpgrade linux-image-5.15.0-1111-realtimeUpgrade linux-image-fips-5.15Upgrade linux-image-6.8.0-1046-gkeopUpgrade linux-image-generic-6.8Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-oem-20.04bUpgrade linux-image-gcp-5.15Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-6.8.0-1061-awsUpgrade linux-image-6.8.1-1056-realtimeUpgrade linux-image-awsUpgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1059-nvidia-64kUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-ibm-6.8Upgrade linux-image-intel-iotg-5.15Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-6.8.0-2050-raspi-realtimeUpgrade linux-image-gcp-6.8Upgrade linux-image-6.8.0-1064-gcp-64kUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-virtualUpgrade linux-image-5.15.0-1106-ibmUpgrade linux-image-generic-lpae-5.15Upgrade linux-image-genericUpgrade linux-image-generic-5.15Upgrade linux-image-azure-cvmUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-5.15.0-1112-gcp-fipsUpgrade linux-image-5.15.0-1117-azure-fdeUpgrade linux-image-aws-fipsUpgrade linux-image-6.8.0-1059-gkeUpgrade linux-image-oem-22.04aUpgrade linux-image-aws-64kUpgrade linux-image-ibm-5.15Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-azure-fips-5.15Upgrade linux-image-oracleUpgrade linux-image-6.8.0-136-fipsUpgrade linux-image-5.15.0-1107-nvidiaUpgrade linux-image-5.15.0-1117-azureUpgrade linux-image-5.15.0-1104-kvmUpgrade linux-image-6.8.0-1059-nvidia-lowlatencyUpgrade linux-image-lowlatencyUpgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-aws-64k-5.15Upgrade linux-image-oem-22.04Upgrade linux-image-5.15.0-1106-raspiUpgrade linux-image-ibmUpgrade linux-image-gkeUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1058-oracle-64kUpgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-azure-fde-6.8Upgrade linux-image-fipsUpgrade linux-image-raspi-6.8Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-generic-64k-6.8Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-aws-fips-5.15Upgrade linux-image-5.15.0-1117-azure-fipsUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-oracle-5.15Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-gkeopUpgrade linux-image-5.15.0-1108-gkeUpgrade linux-image-5.15.0-1053-nvidia-tegra-igxUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-oem-20.04dUpgrade linux-image-intel-iotgUpgrade linux-image-gkeop-5.15Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-aws-fips-6.8Upgrade linux-image-6.8.0-1058-oracleUpgrade linux-image-6.8.0-1030-nvidia-tegraUpgrade linux-image-5.15.0-1109-oracleUpgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-1063-azureUpgrade linux-image-realtime-5.15Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-generic-64k-5.15Upgrade linux-image-gcp-fips-5.15Upgrade linux-image-fips-6.8Upgrade linux-image-gcp-64kUpgrade linux-image-virtual-6.8Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-oracle-6.8Upgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-6.8.0-136-lowlatency-64kUpgrade linux-image-6.8.0-136-generic-64kUpgrade linux-image-6.8.0-1062-azure-fdeUpgrade linux-image-6.8.0-1061-aws-fipsUpgrade linux-image-raspi-5.15Upgrade linux-image-6.8.0-1063-azure-fipsUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-5.15.0-1112-aws-64kUpgrade linux-image-azureUpgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-aws-64k-6.8Upgrade linux-image-5.15.0-1104-intel-iot-realtimeUpgrade linux-image-6.8.0-1030-nvidia-tegra-rtUpgrade linux-image-nvidia-tegraUpgrade linux-image-azure-5.15Upgrade linux-image-6.8.0-1061-ibmUpgrade linux-image-kvm-5.15Upgrade linux-image-azure-fips-6.8Upgrade linux-image-azure-fipsUpgrade linux-image-6.8.0-1064-gcpUpgrade linux-image-6.8.0-1061-aws-64kUpgrade linux-image-5.15.0-184-lowlatencyUpgrade linux-image-xilinxUpgrade linux-image-raspi-realtimeUpgrade linux-image-oem-22.04dUpgrade linux-image-oem-20.04cUpgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-5.15.0-186-fipsUpgrade linux-image-5.15.0-1064-nvidia-tegra-rtUpgrade linux-image-5.15.0-186-generic-64kUpgrade linux-image-virtual-5.15Upgrade linux-image-xilinx-6.8Upgrade linux-image-nvidia-64kUpgrade linux-image-nvidia-6.8Upgrade linux-image-nvidia-5.15Upgrade linux-image-laptop-23.10Upgrade linux-image-kvmUpgrade linux-image-gke-6.8Upgrade linux-image-raspiUpgrade linux-image-oem-22.04cUpgrade linux-image-6.8.0-1059-nvidiaUpgrade linux-image-azure-6.8Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-gke-64kUpgrade linux-image-gcp-fipsUpgrade linux-image-aws-6.8Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-6.8.0-1059-gke-64kUpgrade linux-image-aws-lts-24.04Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-lowlatency-5.15Upgrade linux-image-6.8.0-1059-nvidia-lowlatency-64kUpgrade linux-image-gcpUpgrade linux-image-azure-lts-22.04Upgrade linux-image-5.15.0-186-generic-lpaeUpgrade linux-image-realtime-6.8.1Upgrade linux-image-intelUpgrade linux-image-6.8.0-136-genericUpgrade linux-image-azure-fde-5.15Upgrade linux-image-gke-64k-6.8Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-realtimeUpgrade linux-image-5.15.0-1107-nvidia-lowlatencyUpgrade linux-image-azure-fdeUpgrade linux-image-5.15.0-1053-nvidia-tegra-igx-rtUpgrade linux-image-oracle-64kUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-generic-64kUpgrade linux-image-5.15.0-186-genericUpgrade linux-image-5.15.0-1064-nvidia-tegra | May 25, 2026 | May 1, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | May 27, 2026 | May 1, 2026 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub