CVE-2026-31726
NULL pointer dereference in Linux kernel USB gadget UVC driver
Publication date: 2026-05-01
Last updated on: 2026-05-01
Assigner: kernel.org
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| linux_kernel | linux_kernel | * |
| linux | kernel | * |
| linux | linux_kernel | * |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-UNKNOWN |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability is a NULL pointer dereference in the Linux kernel's USB gadget UVC (USB Video Class) driver that occurs during a race condition in the unbind process.
Specifically, during power management transitions, the unbind thread can proceed prematurely and nullify a gadget pointer. Later, when the system resumes, the release path tries to access this nullified pointer, causing a kernel panic.
The issue arises because the previous synchronization method, which relied on timing waits, is insufficient when user space processes are frozen during power management. The fix involves adding explicit state synchronization using a flag and mutex, and completion synchronization to prevent use-after-free conditions.
How can this vulnerability impact me? :
This vulnerability can cause the Linux kernel to panic due to a NULL pointer dereference, leading to a system crash.
Such kernel panics can result in system instability, unexpected reboots, and potential loss of data or service availability, especially on systems using the USB gadget UVC driver during power management events.
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability manifests as a kernel NULL pointer dereference during power management transitions, which can cause kernel panics. Detection involves monitoring system logs for specific kernel panic messages related to the USB gadget UVC function.
- Check kernel logs for messages like 'uvc_function_unbind no clean disconnect, wait for release' and 'Unable to handle kernel NULL pointer dereference at virtual address 0000000000000030'.
- Use the command: dmesg | grep -i 'uvc_function_unbind'
- Use the command: journalctl -k | grep -i 'uvc_function_unbind'
- Look for kernel panic traces involving usb_gadget_deactivate, usb_function_deactivate, and uvc_function_disconnect in system logs.
What immediate steps should I take to mitigate this vulnerability?
To mitigate this vulnerability, update the Linux kernel to a version that includes the fix addressing the NULL pointer dereference in the USB gadget UVC function.
The fix involves synchronization improvements such as introducing a 'func_unbound' flag protected by a mutex and using completion synchronization to prevent use-after-free conditions.
Until the patch is applied, avoid power management transitions (suspend/resume) on systems using the affected USB gadget UVC function to reduce the risk of kernel panics.