CVE-2024-56545

HID: hyperv: streamline driver probe to avoid devres issues

MEDIUM
5.5
CVSS Score
Published: December 27, 2024 at 02:11 PM UTC
Updated: October 3, 2026 at 11:17 AM 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.2%

Description

In the Linux kernel, the following vulnerability has been resolved: HID: hyperv: streamline driver probe to avoid devres issues It was found that unloading 'hid_hyperv' module results in a devres complaint: ... hv_vmbus: unregistering driver hid_hyperv ------------[ cut here ]------------ WARNING: CPU: 2 PID: 3983 at drivers/base/devres.c:691 devres_release_group+0x1f2/0x2c0 ... Call Trace: <TASK> ? devres_release_group+0x1f2/0x2c0 ? __warn+0xd1/0x1c0 ? devres_release_group+0x1f2/0x2c0 ? report_bug+0x32a/0x3c0 ? handle_bug+0x53/0xa0 ? exc_invalid_op+0x18/0x50 ? asm_exc_invalid_op+0x1a/0x20 ? devres_release_group+0x1f2/0x2c0 ? devres_release_group+0x90/0x2c0 ? rcu_is_watching+0x15/0xb0 ? __pfx_devres_release_group+0x10/0x10 hid_device_remove+0xf5/0x220 device_release_driver_internal+0x371/0x540 ? klist_put+0xf3/0x170 bus_remove_device+0x1f1/0x3f0 device_del+0x33f/0x8c0 ? __pfx_device_del+0x10/0x10 ? cleanup_srcu_struct+0x337/0x500 hid_destroy_device+0xc8/0x130 mousevsc_remove+0xd2/0x1d0 [hid_hyperv] device_release_driver_internal+0x371/0x540 driver_detach+0xc5/0x180 bus_remove_driver+0x11e/0x2a0 ? __mutex_unlock_slowpath+0x160/0x5e0 vmbus_driver_unregister+0x62/0x2b0 [hv_vmbus] ... And the issue seems to be that the corresponding devres group is not allocated. Normally, devres_open_group() is called from __hid_device_probe() but Hyper-V HID driver overrides 'hid_dev->driver' with 'mousevsc_hid_driver' stub and basically re-implements __hid_device_probe() by calling hid_parse() and hid_hw_start() but not devres_open_group(). hid_device_probe() does not call __hid_device_probe() for it. Later, when the driver is removed, hid_device_remove() calls devres_release_group() as it doesn't check whether hdev->driver was initially overridden or not. The issue seems to be related to the commit 62c68e7cee33 ("HID: ensure timely release of driver-allocated resources") but the commit itself seems to be correct. Fix the issue by dropping the 'hid_dev->driver' override and using hid_register_driver()/hid_unregister_driver() instead. Alternatively, it would have been possible to rely on the default handling but HID_CONNECT_DEFAULT implies HID_CONNECT_HIDRAW and it doesn't seem to work for mousevsc as-is.

Affected

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

5.10.270 ≤ v < 5.10.2715.15.221 ≤ v < 5.15.2226.1.188 ≤ v < 6.1.1896.12 ≤ v < 6.12.26.5 ≤ v < 6.11.116.5 ≤ v < 6.12.26.5 ≤ v < 6.136.5 ≤ v < 6.6.646.7 ≤ v < 6.11.114d1617e40713a6202b6165ca137b09aaf35637f55.10.2705.15.2216.1.1886.562c68e7cee332e08e625af3bca3318814086490dac0d8318082f549419104cfe9cb6a9deb2df9853e6ea3de7abef998aaab9f04a7a11a7c5f56bbe57
Vendor states this is fixed in 19a9457e5e210e408c1f8865b5d93c5a2c90409d (fixed)
Vendor states this is fixed in 3d48d0fbaaa74a04fb9092780a3f83dc4f3f8160 (fixed)
Vendor states this is fixed in 4c419126cf71ca1f358ec0b8ccc448928719d502 (fixed)
Vendor states this is fixed in 66ef47faa90d838cda131fe1f7776456cc3b59f2 (fixed)
Vendor states this is fixed in a216f6dc0444c3bd900bca66b9f21467d08e3ed3 (fixed)
Vendor states this is fixed in b03e713a400aeb5f969bab4daf47a7402d0df814 (fixed)
Vendor states this is fixed in b7c074d21fe8a8ee3b4f866a12c72cad6a5826eb (fixed)
Vendor states this is fixed in 5.10.271 (unaffected)
Vendor states this is fixed in 5.15.222 (unaffected)
Vendor states this is fixed in 6.1.189 (unaffected)
Vendor states this is fixed in 6.11.11 (unaffected)
Vendor states this is fixed in 6.12.2 (unaffected)
Vendor states this is fixed in 6.13 (unaffected)
Vendor states this is fixed in 6.5 (unaffected)
Vendor states this is fixed in 6.6.64 (unaffected)

CVSS

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

Quick Info

StatusMODIFIED
CWE
NVD-CWE-noinfo

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