CVE-2025-21776 Information
Description
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:
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.
Reference
https://git.kernel.org/stable/c/2240fed37afbcdb5e8b627bc7ad986891100e05d https://git.kernel.org/stable/c/5b9778e1fe715700993ce436c152dc3b7df0b490 https://git.kernel.org/stable/c/62d8f4c5454dd39aded4f343720d1c5a1803cfef https://git.kernel.org/stable/c/c3720b04df84b5459050ae4e03ec7d545652f897 https://git.kernel.org/stable/c/e905a0fca7bff0855d312c16f71e60e1773b393e
Share on: