KernelScan.io

HIGH Introduced in 3.10

hid ProbeCleanup UAF

CVE-2026-90329

CVSS 8.8 / 10.0 NVD

CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

KernelScan AI6.4MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: HID: synchronize input before cleaning up a failed probe hid_device_io_start() allows reports to run concurrently with probe. If the probe subsequently fails, __hid_device_probe() releases driver resources and clears hdev->driver without first excluding those report callbacks. For example, a report may enter hidraw_report_event() while the failure path frees the associated hidraw object, leading to a use-after-free when the report takes the object's list lock. Stop input before performing failed-probe cleanup. This reacquires driver_input_lock and waits for any report callback already in progress.

02

Engine v0.6.0

Risk summary

A race condition in the HID subsystem allows a use-after-free when a device probe fails while report callbacks are still running. An attacker with physical access to a USB/HID port could trigger this by connecting a malicious device, potentially leading to kernel memory corruption. The vulnerability requires winning a race window during device probing.

Affecteddrivers/hid/hid-core.c (HID core)

Vulnerability analysis

During HID device probing, input reports are allowed to run at the same time as the driver setup. If the setup later fails, the cleanup path releases resources before ensuring that all active report callbacks have finished. A callback still in progress can then operate on memory that was just freed, resulting in a use-after-free in the HID core. The fix prevents this by halting input and waiting for any ongoing callbacks to complete before the cleanup proceeds. An attacker can trigger the flaw by connecting a malicious USB HID device, which requires physical access to a USB port.

03

BranchIntroducedFixed inPatch commit
5.103.105.10.2703ffb088a2ed3
5.153.105.15.2212c35cdeb13a0
6.13.106.1.18898201b46f7e3
6.123.106.12.110edd490b8ad85
6.183.106.18.5201eeb601a162
6.63.106.6.1579a3da56aae28
7.23.107.2.6b85d1000eb88
mainline3.107.3207853d46f7e
cip/5.103.105.10.271-cip783ffb088a2ed3
cip/5.10-rt3.105.10.272-cip79-rt353ffb088a2ed3
cip/6.13.106.1.189-cip6198201b46f7e3
cip/6.1-rt3.106.1.189-cip61-rt3298201b46f7e3
cip/6.123.106.12.111-cip32edd490b8ad85

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32
cip/6.1Fixed in 6.1.189-cip61
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Fixed in 5.10.271-cip78
cip/5.10-rtFixed in 5.10.272-cip79-rt35
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)
cip/4.4Affected — no CIP fix yet (latest 4.4.302-cip115)
cip/4.4-rtAffected — no CIP fix yet (latest 4.4.302-cip115-rt63)