In the Linux kernel, the following vulnerability has been resolved:
HID: intel-ish-hid: Fix use-after-free issue in ishtphidremove()
The system can experience a random crash a few minutes after the driver is removed. This issue occurs due to improper handling of memory freeing in the ishtphidremove() function.
The function currently frees the driver_data
directly within the loop
that destroys the HID devices, which can lead to accessing freed memory.
Specifically, hid_destroy_device()
uses driver_data
when it calls
hid_ishtp_set_feature()
to power off the sensor, so freeing
driver_data
beforehand can result in accessing invalid memory.
This patch resolves the issue by storing the driver_data
in a temporary
variable before calling hid_destroy_device()
, and then freeing the
driver_data
after the device is destroyed.