{"api_version":"1","generated_at":"2026-09-17T23:58:41+00:00","cve":"CVE-2026-93189","urls":{"html":"https://cve.report/CVE-2026-93189","api":"https://cve.report/api/cve/CVE-2026-93189.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-93189","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-93189"},"summary":{"title":"HID: core: quiesce input in hid_hw_stop() to prevent use-after-free","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: core: quiesce input in hid_hw_stop() to prevent use-after-free\n\nA driver's probe calls hid_device_io_start() to enable input delivery,\nthen fails at a later initialization step and unwinds via hid_hw_stop().\nThe unwind frees struct hidraw via hidraw_disconnect() while in-flight\nHID reports may still be running on another CPU, dereferencing the\nfreed object through hidraw_report_event(). syzbot reports the\nresulting use-after-free for the corsair-psu HID driver.\n\nEdward Adam Davis posted a per-driver fix for corsair-psu that adds\nan explicit hid_device_io_stop() before hid_hw_stop() in the probe\nerror path (\"hwmon: prevent packets from going to driver for probe\",\n2026-04-28). Auditing the tree shows 15 drivers call\nhid_device_io_start(); 7 also call hid_device_io_stop() and 8 do not:\n\n  drivers calling hid_device_io_start() without a matching\n  hid_device_io_stop() before hid_hw_stop():\n    drivers/hwmon/corsair-psu.c       (fix posted by Edward)\n    drivers/hwmon/corsair-cpro.c\n    drivers/hwmon/nzxt-kraken3.c\n    drivers/hwmon/nzxt-smart2.c\n    drivers/hwmon/gigabyte_waterforce.c\n    drivers/hid/hid-logitech-dj.c\n    drivers/hid/hid-nintendo.c\n    drivers/hid/hid-mcp2221.c\n\nRoughly half of all callers of the API are exposed. Centralize the\nquiesce in hid_hw_stop() so callers do not have to remember the\nmatching stop: if a driver has left hdev->io_started true on entry,\ncall hid_device_io_stop() before hid_disconnect().\n\nFor the 7 drivers that already call hid_device_io_stop() correctly,\nhdev->io_started is false on entry, the guard short-circuits, and\nbehavior is unchanged.\n\nNo Fixes: tag because the affected drivers gained their\nhid_device_io_start() calls independently over years; the bug is a\nclass-wide API misuse rather than a regression from one commit.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-09-17 17:18:15","updated_at":"2026-09-17 17:18:15"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/02246d8b462fd9bd90bc7ae7d6cab1acf69bcb87","name":"https://git.kernel.org/stable/c/02246d8b462fd9bd90bc7ae7d6cab1acf69bcb87","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/92cca302a4eaf65d1b38b3fb600b4ee5eb856a51","name":"https://git.kernel.org/stable/c/92cca302a4eaf65d1b38b3fb600b4ee5eb856a51","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/a4bc41504690b7d7064931909874f5b98cd148b6","name":"https://git.kernel.org/stable/c/a4bc41504690b7d7064931909874f5b98cd148b6","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/0744cb9520aade37e78f69134f3111086158f1d2","name":"https://git.kernel.org/stable/c/0744cb9520aade37e78f69134f3111086158f1d2","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/0fecd89f979a8653b9a5b0816570329b7a94a081","name":"https://git.kernel.org/stable/c/0fecd89f979a8653b9a5b0816570329b7a94a081","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/c876c437d188911685d8bed645416f2e86bd0354","name":"https://git.kernel.org/stable/c/c876c437d188911685d8bed645416f2e86bd0354","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/544ebb25bd58f67e821573412ab7a982b9e02211","name":"https://git.kernel.org/stable/c/544ebb25bd58f67e821573412ab7a982b9e02211","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/6787f1828f5616f17250e108c0031fb96fd2cfe6","name":"https://git.kernel.org/stable/c/6787f1828f5616f17250e108c0031fb96fd2cfe6","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-93189","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-93189","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 0744cb9520aade37e78f69134f3111086158f1d2 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 c876c437d188911685d8bed645416f2e86bd0354 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 6787f1828f5616f17250e108c0031fb96fd2cfe6 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 92cca302a4eaf65d1b38b3fb600b4ee5eb856a51 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 02246d8b462fd9bd90bc7ae7d6cab1acf69bcb87 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 544ebb25bd58f67e821573412ab7a982b9e02211 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 0fecd89f979a8653b9a5b0816570329b7a94a081 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 a4bc41504690b7d7064931909874f5b98cd148b6 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.10.270 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.15.221 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.1.188 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.6.157 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.12.110 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.18.52 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 7.2.6 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.10.270 5.10.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.15.221 5.15.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.1.188 6.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.157 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.110 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.52 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2.6 7.2.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3-rc1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/hid/hid-core.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"0744cb9520aade37e78f69134f3111086158f1d2","status":"affected","version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","versionType":"git"},{"lessThan":"c876c437d188911685d8bed645416f2e86bd0354","status":"affected","version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","versionType":"git"},{"lessThan":"6787f1828f5616f17250e108c0031fb96fd2cfe6","status":"affected","version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","versionType":"git"},{"lessThan":"92cca302a4eaf65d1b38b3fb600b4ee5eb856a51","status":"affected","version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","versionType":"git"},{"lessThan":"02246d8b462fd9bd90bc7ae7d6cab1acf69bcb87","status":"affected","version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","versionType":"git"},{"lessThan":"544ebb25bd58f67e821573412ab7a982b9e02211","status":"affected","version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","versionType":"git"},{"lessThan":"0fecd89f979a8653b9a5b0816570329b7a94a081","status":"affected","version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","versionType":"git"},{"lessThan":"a4bc41504690b7d7064931909874f5b98cd148b6","status":"affected","version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","versionType":"git"},{"lessThan":"5.10.270","status":"affected","version":"0","versionType":"semver"},{"lessThan":"5.15.221","status":"affected","version":"0","versionType":"semver"},{"lessThan":"6.1.188","status":"affected","version":"0","versionType":"semver"},{"lessThan":"6.6.157","status":"affected","version":"0","versionType":"semver"},{"lessThan":"6.12.110","status":"affected","version":"0","versionType":"semver"},{"lessThan":"6.18.52","status":"affected","version":"0","versionType":"semver"},{"lessThan":"7.2.6","status":"affected","version":"0","versionType":"semver"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/hid/hid-core.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThanOrEqual":"5.10.*","status":"unaffected","version":"5.10.270","versionType":"semver"},{"lessThanOrEqual":"5.15.*","status":"unaffected","version":"5.15.221","versionType":"semver"},{"lessThanOrEqual":"6.1.*","status":"unaffected","version":"6.1.188","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.157","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.110","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.52","versionType":"semver"},{"lessThanOrEqual":"7.2.*","status":"unaffected","version":"7.2.6","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.3-rc1","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.10.270","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.15.221","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.1.188","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.157","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.110","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.52","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2.6","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.3-rc1","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: core: quiesce input in hid_hw_stop() to prevent use-after-free\n\nA driver's probe calls hid_device_io_start() to enable input delivery,\nthen fails at a later initialization step and unwinds via hid_hw_stop().\nThe unwind frees struct hidraw via hidraw_disconnect() while in-flight\nHID reports may still be running on another CPU, dereferencing the\nfreed object through hidraw_report_event(). syzbot reports the\nresulting use-after-free for the corsair-psu HID driver.\n\nEdward Adam Davis posted a per-driver fix for corsair-psu that adds\nan explicit hid_device_io_stop() before hid_hw_stop() in the probe\nerror path (\"hwmon: prevent packets from going to driver for probe\",\n2026-04-28). Auditing the tree shows 15 drivers call\nhid_device_io_start(); 7 also call hid_device_io_stop() and 8 do not:\n\n  drivers calling hid_device_io_start() without a matching\n  hid_device_io_stop() before hid_hw_stop():\n    drivers/hwmon/corsair-psu.c       (fix posted by Edward)\n    drivers/hwmon/corsair-cpro.c\n    drivers/hwmon/nzxt-kraken3.c\n    drivers/hwmon/nzxt-smart2.c\n    drivers/hwmon/gigabyte_waterforce.c\n    drivers/hid/hid-logitech-dj.c\n    drivers/hid/hid-nintendo.c\n    drivers/hid/hid-mcp2221.c\n\nRoughly half of all callers of the API are exposed. Centralize the\nquiesce in hid_hw_stop() so callers do not have to remember the\nmatching stop: if a driver has left hdev->io_started true on entry,\ncall hid_device_io_stop() before hid_disconnect().\n\nFor the 7 drivers that already call hid_device_io_stop() correctly,\nhdev->io_started is false on entry, the guard short-circuits, and\nbehavior is unchanged.\n\nNo Fixes: tag because the affected drivers gained their\nhid_device_io_start() calls independently over years; the bug is a\nclass-wide API misuse rather than a regression from one commit."}],"providerMetadata":{"dateUpdated":"2026-09-17T16:12:14.234Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/0744cb9520aade37e78f69134f3111086158f1d2"},{"url":"https://git.kernel.org/stable/c/c876c437d188911685d8bed645416f2e86bd0354"},{"url":"https://git.kernel.org/stable/c/6787f1828f5616f17250e108c0031fb96fd2cfe6"},{"url":"https://git.kernel.org/stable/c/92cca302a4eaf65d1b38b3fb600b4ee5eb856a51"},{"url":"https://git.kernel.org/stable/c/02246d8b462fd9bd90bc7ae7d6cab1acf69bcb87"},{"url":"https://git.kernel.org/stable/c/544ebb25bd58f67e821573412ab7a982b9e02211"},{"url":"https://git.kernel.org/stable/c/0fecd89f979a8653b9a5b0816570329b7a94a081"},{"url":"https://git.kernel.org/stable/c/a4bc41504690b7d7064931909874f5b98cd148b6"}],"title":"HID: core: quiesce input in hid_hw_stop() to prevent use-after-free","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-93189","datePublished":"2026-09-17T16:12:14.234Z","dateReserved":"2026-09-17T16:02:15.091Z","dateUpdated":"2026-09-17T16:12:14.234Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-09-17 17:18:15","lastModifiedDate":"2026-09-17 17:18:15","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"93189","Ordinal":"1","Title":"HID: core: quiesce input in hid_hw_stop() to prevent use-after-f","CVE":"CVE-2026-93189","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"93189","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: core: quiesce input in hid_hw_stop() to prevent use-after-free\n\nA driver's probe calls hid_device_io_start() to enable input delivery,\nthen fails at a later initialization step and unwinds via hid_hw_stop().\nThe unwind frees struct hidraw via hidraw_disconnect() while in-flight\nHID reports may still be running on another CPU, dereferencing the\nfreed object through hidraw_report_event(). syzbot reports the\nresulting use-after-free for the corsair-psu HID driver.\n\nEdward Adam Davis posted a per-driver fix for corsair-psu that adds\nan explicit hid_device_io_stop() before hid_hw_stop() in the probe\nerror path (\"hwmon: prevent packets from going to driver for probe\",\n2026-04-28). Auditing the tree shows 15 drivers call\nhid_device_io_start(); 7 also call hid_device_io_stop() and 8 do not:\n\n  drivers calling hid_device_io_start() without a matching\n  hid_device_io_stop() before hid_hw_stop():\n    drivers/hwmon/corsair-psu.c       (fix posted by Edward)\n    drivers/hwmon/corsair-cpro.c\n    drivers/hwmon/nzxt-kraken3.c\n    drivers/hwmon/nzxt-smart2.c\n    drivers/hwmon/gigabyte_waterforce.c\n    drivers/hid/hid-logitech-dj.c\n    drivers/hid/hid-nintendo.c\n    drivers/hid/hid-mcp2221.c\n\nRoughly half of all callers of the API are exposed. Centralize the\nquiesce in hid_hw_stop() so callers do not have to remember the\nmatching stop: if a driver has left hdev->io_started true on entry,\ncall hid_device_io_stop() before hid_disconnect().\n\nFor the 7 drivers that already call hid_device_io_stop() correctly,\nhdev->io_started is false on entry, the guard short-circuits, and\nbehavior is unchanged.\n\nNo Fixes: tag because the affected drivers gained their\nhid_device_io_start() calls independently over years; the bug is a\nclass-wide API misuse rather than a regression from one commit.","Type":"Description","Title":"HID: core: quiesce input in hid_hw_stop() to prevent use-after-f"}]}}}