CVE-2026-64331

usbip: vudc: fix NULL deref in vep_dequeue()

MEDIUM
5.5
CVSS Score
Published: July 25, 2026 at 08:49 AM UTC
Updated: September 3, 2026 at 04:24 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.1%

Description

In the Linux kernel, the following vulnerability has been resolved: usbip: vudc: fix NULL deref in vep_dequeue() vep_alloc_request() wasn't initializing vrequest->udc, so cancellations on the FunctionFS AIO path were arriving in vep_dequeue without a valid UDC reference. Since vrequest->udc is never actually properly used anywhere, we opt to remove it, and update vep_dequeue to obtain a reference to the udc with ep_to_vudc(), consistent with the other vep_ ops. AFAICT this bug has existed for ~10 years. Seems that nobody has really stressed the FunctionFS AIO path on usbip's vudc. I tested this fix in a QEMU aarch64 guest driving FunctionFS endpoints via AIO. Before the fix, running `usbip attach` from the host would cause the guest to oops with the following backtrace: Call trace: vep_dequeue+0x1c/0xe4 (P) usb_ep_dequeue+0x14/0x20 ffs_aio_cancel+0x24/0x34 __arm64_sys_io_cancel+0xb0/0x124 do_el0_svc+0x68/0x100 el0_svc+0x18/0x5c el0t_64_sync_handler+0x98/0xdc el0t_64_sync+0x154/0x158

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

4.7 ≤ v < 5.10.2614.7 ≤ v < 5.15.2124.7 ≤ v < 6.1.1784.7 ≤ v < 6.12.964.7 ≤ v < 6.18.394.7 ≤ v < 6.6.1454.7 ≤ v < 7.1.44.7 ≤ v < 7.25.11 ≤ v < 5.15.2125.16 ≤ v < 6.1.1786.13 ≤ v < 6.18.396.19 ≤ v < 7.1.46.2 ≤ v < 6.6.1456.7 ≤ v < 6.12.967.2 rc17.2 rc2b6a0ca11186759ad7045d68a5447b1e89f658384
Vendor states this is fixed in 0025276175fbbe0dcbf3f84d090b0adee769e9d9 (fixed)
Vendor states this is fixed in 0443e4416aa1ee97748d1ed904eaf3352c60045e (fixed)
Vendor states this is fixed in 1226293ec9bed3d4cc5b05eeeb811d315ca51652 (fixed)
Vendor states this is fixed in 347b59e9f96719d89b6ef555d02a18ada1a5846f (fixed)
Vendor states this is fixed in 3750f75f29f99c0223601e2ee73ad084adec47bd (fixed)
Vendor states this is fixed in 9858c91d9ee6a13c45311569039413729fc9b757 (fixed)
Vendor states this is fixed in c5371e0b91b24159a3ebaa61e70b0980bcf03c0a (fixed)
Vendor states this is fixed in d0ebf9cc7c2ddf95a7cfc654b940bdacb7edde97 (fixed)
Vendor states this is fixed in 4.7 (unaffected)
Vendor states this is fixed in 5.10.261 (unaffected)
Vendor states this is fixed in 5.15.212 (unaffected)
Vendor states this is fixed in 6.1.178 (unaffected)
Vendor states this is fixed in 6.12.96 (unaffected)
Vendor states this is fixed in 6.18.39 (unaffected)
Vendor states this is fixed in 6.6.145 (unaffected)
Vendor states this is fixed in 7.1.4 (unaffected)
Vendor states this is fixed in 7.2 (unaffected)

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusANALYZED
CWE
CWE-476

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card