-

CVE-2026-68361

hwmon: (corsair-psu) Stop device IO before calling hid_hw_stop

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

hwmon: (corsair-psu) Stop device IO before calling hid_hw_stop

hid_hw_stop() does not stop the device IO.

This results in a race condition between hid_input_report() and the point
immediately following the execution of hid_device_io_start() within
corsairpsu_probe(). If the probe operation fails after "io start" has
been initiated, this race condition will result in a uaf vulnerability
[1].

CPU0				CPU1
====				====
corsairpsu_probe()
 hid_device_io_start()
  ... unlock driver_input_lock
 hid_hw_stop()
  kfree(hidraw)			__hid_input_report()
				 ... acquire driver_input_lock
				 hid_report_raw_event()
				  hidraw_report_event()
				   ... access hidraw's list_lock // trigger uaf

Consequently, when corsairpsu_probe() fails and hid_hw_stop() needs to
be executed, the io_started flag is first cleared while holding the
driver_input_lock to prevent potential race conditions involving input
reports.

[1]
BUG: KASAN: slab-use-after-free in rt_spin_lock+0x83/0x400 kernel/locking/spinlock_rt.c:56
Call Trace:
 hidraw_report_event+0x5d/0x3a0 drivers/hid/hidraw.c:577
 hid_report_raw_event+0x311/0x1730 drivers/hid/hid-core.c:2076
 __hid_input_report drivers/hid/hid-core.c:2152 [inline]
 hid_input_report+0x44e/0x580 drivers/hid/hid-core.c:2174
 hid_irq_in+0x47e/0x6d0 drivers/hid/usbhid/hid-core.c:286
 __usb_hcd_giveback_urb+0x3b3/0x5e0 drivers/usb/core/hcd.c:1657
 dummy_timer+0x8a9/0x47d0 drivers/usb/gadget/udc/dummy_hcd.c:2005

Allocated by task 10:
 hidraw_connect+0x57/0x430 drivers/hid/hidraw.c:606
 hid_connect+0x5bf/0x19d0 drivers/hid/hid-core.c:2277
 hid_hw_start+0xa8/0x120 drivers/hid/hid-core.c:2387
 corsairpsu_probe+0xd9/0x3c0 drivers/hwmon/corsair-psu.c:782

Freed by task 10:
 hidraw_disconnect+0x4f/0x60 drivers/hid/hidraw.c:662
 hid_disconnect drivers/hid/hid-core.c:2362 [inline]
 hid_hw_stop+0x101/0x1e0 drivers/hid/hid-core.c:2407
 corsairpsu_probe+0x327/0x3c0 drivers/hwmon/corsair-psu.c:826

Fix the problem by calling hid_device_io_stop() before calling
hid_hw_stop().

[groeck: Updated subject and description;
 call hid_device_io_stop() only if IO has been started]
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt Linux
Default Statusunaffected
Version d115b51e0e567199c821fc39e13b6af7e78f247d
Version < 45dcd8a63069197f64dbda30509b9e224b74c0d8
Status affected
Version d115b51e0e567199c821fc39e13b6af7e78f247d
Version < c80ed058f31bb0251a748034d69feb376741dcb2
Status affected
Version d115b51e0e567199c821fc39e13b6af7e78f247d
Version < e6e1e0f3050d1a1a3ea1c9d6253363e87fdad67a
Status affected
Version d115b51e0e567199c821fc39e13b6af7e78f247d
Version < c0aae8d24f5e52d6910f97d59bc624e131f3ae1a
Status affected
Version d115b51e0e567199c821fc39e13b6af7e78f247d
Version < ec477af3a7e8d3964e62fd24ef01cdebb96b8e4e
Status affected
Version d115b51e0e567199c821fc39e13b6af7e78f247d
Version < bb25bd980f2d9bd34558e1b1d16636e4945baf14
Status affected
Version d115b51e0e567199c821fc39e13b6af7e78f247d
Version < 9ab8656548cd737b98d0b19c4253aff8d68e97f4
Status affected
HerstellerLinux
≫
Produkt Linux
Default Statusaffected
Version 5.11
Status affected
Version 0
Version < 5.11
Status unaffected
Version <= 5.15.*
Version 5.15.216
Status unaffected
Version <= 6.1.*
Version 6.1.183
Status unaffected
Version <= 6.6.*
Version 6.6.148
Status unaffected
Version <= 6.12.*
Version 6.12.101
Status unaffected
Version <= 6.18.*
Version 6.18.42
Status unaffected
Version <= 7.1.*
Version 7.1.6
Status unaffected
Version <= *
Version 7.2
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.19% 0.094
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/e6e1e0f3050d1a1a3ea1c9d6253363e87fdad67a
https://git.kernel.org/stable/c/c0aae8d24f5e52d6910f97d59bc624e131f3ae1a
https://git.kernel.org/stable/c/ec477af3a7e8d3964e62fd24ef01cdebb96b8e4e
https://git.kernel.org/stable/c/bb25bd980f2d9bd34558e1b1d16636e4945baf14
https://git.kernel.org/stable/c/9ab8656548cd737b98d0b19c4253aff8d68e97f4
https://git.kernel.org/stable/c/45dcd8a63069197f64dbda30509b9e224b74c0d8
https://git.kernel.org/stable/c/c80ed058f31bb0251a748034d69feb376741dcb2