CVE-2025-21776CWE-476

CVE-2025-21776

Medium · published February 27, 2025

CVSS v3.1
5.5
EPSS
0%
Percentile
19.4
In the wild
Unconfirmed
What it is

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

USB: hub: Ignore non-compliant devices with too many configs or interfaces

Robert Morris created a test program which can cause

usb_hub_to_struct_hub() to dereference a NULL or inappropriate

pointer:

Oops: general protection fault, probably for non-canonical address

0xcccccccccccccccc: 0000 [#1] SMP DEBUG_PAGEALLOC PTI

CPU: 7 UID: 0 PID: 117 Comm: kworker/7:1 Not tainted 6.13.0-rc3-00017-gf44d154d6e3d #14

Hardware name: FreeBSD BHYVE/BHYVE, BIOS 14.0 10/17/2021

Workqueue: usb_hub_wq hub_event

RIP: 0010:usb_hub_adjust_deviceremovable+0x78/0x110

...

Call Trace:

<TASK>

? die_addr+0x31/0x80

? exc_general_protection+0x1b4/0x3c0

? asm_exc_general_protection+0x26/0x30

? usb_hub_adjust_deviceremovable+0x78/0x110

hub_probe+0x7c7/0xab0

usb_probe_interface+0x14b/0x350

really_probe+0xd0/0x2d0

? __pfx___device_attach_driver+0x10/0x10

__driver_probe_device+0x6e/0x110

driver_probe_device+0x1a/0x90

__device_attach_driver+0x7e/0xc0

bus_for_each_drv+0x7f/0xd0

__device_attach+0xaa/0x1a0

bus_probe_device+0x8b/0xa0

device_add+0x62e/0x810

usb_set_configuration+0x65d/0x990

usb_generic_driver_probe+0x4b/0x70

usb_probe_device+0x36/0xd0

The cause of this error is that the device has two interfaces, and the

hub driver binds to interface 1 instead of interface 0, which is where

usb_hub_to_struct_hub() looks.

We can prevent the problem from occurring by refusing to accept hub

devices that violate the USB spec by having more than one

configuration or interface.

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00280 · 19.4th percentile
Weakness
CWE-476 · NULL Pointer Dereference
Published
2025-02-27T08:15Z
Affected products (6)
ProductVersionsFixed in
linux/linux_kernel< 6.1.1296.1.129
linux/linux_kernel≥ 6.2, < 6.6.796.6.79
linux/linux_kernel≥ 6.7, < 6.12.166.12.16
linux/linux_kernel≥ 6.13, < 6.13.46.13.4
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (13)
EPSS history
Timeline
  • 27 FEB 02:18Z
    USB: hub: Ignore non-compliant devices with too many configs or interfaces
    cvelistv5