CVE-2026-93189

High

Description

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.

SeverityHigh
CVSS8.8
Exploit probability—
ProductLinux
PublishedSep 17, 2026
First seenSep 17, 2026

How to fix

Update
  • Linux Linux0744cb9520aade37e78f69134f3111086158f1d2, c876c437d188911685d8bed645416f2e86bd0354, 6787f1828f5616f17250e108c0031fb96fd2cfe6, 92cca302a4eaf65d1b38b3fb600b4ee5eb856a51, 02246d8b462fd9bd90bc7ae7d6cab1acf69bcb87, 544ebb25bd58f67e821573412ab7a982b9e02211, 0fecd89f979a8653b9a5b0816570329b7a94a081, a4bc41504690b7d7064931909874f5b98cd148b6, 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, 6.18.52, 7.2.6 or later

Affected products

ProductAffected versionsFixed in
Linux Linux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 0744cb9520aade37e78f69134f3111086158f1d2, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < c876c437d188911685d8bed645416f2e86bd0354, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 6787f1828f5616f17250e108c0031fb96fd2cfe6, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 92cca302a4eaf65d1b38b3fb600b4ee5eb856a51, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 02246d8b462fd9bd90bc7ae7d6cab1acf69bcb87, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 544ebb25bd58f67e821573412ab7a982b9e02211, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 0fecd89f979a8653b9a5b0816570329b7a94a081, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < a4bc41504690b7d7064931909874f5b98cd148b6, v < 5.10.270, v < 5.15.221, v < 6.1.188, v < 6.6.157, v < 6.12.110, v < 6.18.52, v < 7.2.6, No range specified0744cb9520aade37e78f69134f3111086158f1d2, c876c437d188911685d8bed645416f2e86bd0354, 6787f1828f5616f17250e108c0031fb96fd2cfe6, 92cca302a4eaf65d1b38b3fb600b4ee5eb856a51, 02246d8b462fd9bd90bc7ae7d6cab1acf69bcb87, 544ebb25bd58f67e821573412ab7a982b9e02211, 0fecd89f979a8653b9a5b0816570329b7a94a081, a4bc41504690b7d7064931909874f5b98cd148b6, 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, 6.18.52, 7.2.6

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.