8.8

CVE-2026-93189

HID: core: quiesce input in hid_hw_stop() to prevent use-after-free

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

HID: core: quiesce input in hid_hw_stop() to prevent use-after-free

A driver's probe calls hid_device_io_start() to enable input delivery,
then fails at a later initialization step and unwinds via hid_hw_stop().
The unwind frees struct hidraw via hidraw_disconnect() while in-flight
HID reports may still be running on another CPU, dereferencing the
freed object through hidraw_report_event(). syzbot reports the
resulting use-after-free for the corsair-psu HID driver.

Edward Adam Davis posted a per-driver fix for corsair-psu that adds
an explicit hid_device_io_stop() before hid_hw_stop() in the probe
error path ("hwmon: prevent packets from going to driver for probe",
2026-04-28). Auditing the tree shows 15 drivers call
hid_device_io_start(); 7 also call hid_device_io_stop() and 8 do not:

  drivers calling hid_device_io_start() without a matching
  hid_device_io_stop() before hid_hw_stop():
    drivers/hwmon/corsair-psu.c       (fix posted by Edward)
    drivers/hwmon/corsair-cpro.c
    drivers/hwmon/nzxt-kraken3.c
    drivers/hwmon/nzxt-smart2.c
    drivers/hwmon/gigabyte_waterforce.c
    drivers/hid/hid-logitech-dj.c
    drivers/hid/hid-nintendo.c
    drivers/hid/hid-mcp2221.c

Roughly half of all callers of the API are exposed. Centralize the
quiesce in hid_hw_stop() so callers do not have to remember the
matching stop: if a driver has left hdev->io_started true on entry,
call hid_device_io_stop() before hid_disconnect().

For the 7 drivers that already call hid_device_io_stop() correctly,
hdev->io_started is false on entry, the guard short-circuits, and
behavior is unchanged.

No Fixes: tag because the affected drivers gained their
hid_device_io_start() calls independently over years; the bug is a
class-wide API misuse rather than a regression from one commit.
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt Linux
Default Statusunaffected
Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version < 0744cb9520aade37e78f69134f3111086158f1d2
Status affected
Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version < c876c437d188911685d8bed645416f2e86bd0354
Status affected
Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version < 6787f1828f5616f17250e108c0031fb96fd2cfe6
Status affected
Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version < 92cca302a4eaf65d1b38b3fb600b4ee5eb856a51
Status affected
Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version < 02246d8b462fd9bd90bc7ae7d6cab1acf69bcb87
Status affected
Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version < 544ebb25bd58f67e821573412ab7a982b9e02211
Status affected
Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version < 0fecd89f979a8653b9a5b0816570329b7a94a081
Status affected
Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version < a4bc41504690b7d7064931909874f5b98cd148b6
Status affected
Version 0
Version < 5.10.270
Status affected
Version 0
Version < 5.15.221
Status affected
Version 0
Version < 6.1.188
Status affected
Version 0
Version < 6.6.157
Status affected
Version 0
Version < 6.12.110
Status affected
Version 0
Version < 6.18.52
Status affected
Version 0
Version < 7.2.6
Status affected
HerstellerLinux
≫
Produkt Linux
Default Statusaffected
Version <= 5.10.*
Version 5.10.270
Status unaffected
Version <= 5.15.*
Version 5.15.221
Status unaffected
Version <= 6.1.*
Version 6.1.188
Status unaffected
Version <= 6.6.*
Version 6.6.157
Status unaffected
Version <= 6.12.*
Version 6.12.110
Status unaffected
Version <= 6.18.*
Version 6.18.52
Status unaffected
Version <= 7.2.*
Version 7.2.6
Status unaffected
Version <= *
Version 7.3-rc1
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.31% 0.243
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
416baaa9-dc9f-4396-8d5f-8c081fb06d67 8.8 2.8 5.9
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/0744cb9520aade37e78f69134f3111086158f1d2
https://git.kernel.org/stable/c/c876c437d188911685d8bed645416f2e86bd0354
https://git.kernel.org/stable/c/6787f1828f5616f17250e108c0031fb96fd2cfe6
https://git.kernel.org/stable/c/92cca302a4eaf65d1b38b3fb600b4ee5eb856a51
https://git.kernel.org/stable/c/02246d8b462fd9bd90bc7ae7d6cab1acf69bcb87
https://git.kernel.org/stable/c/544ebb25bd58f67e821573412ab7a982b9e02211
https://git.kernel.org/stable/c/0fecd89f979a8653b9a5b0816570329b7a94a081
https://git.kernel.org/stable/c/a4bc41504690b7d7064931909874f5b98cd148b6