High · published May 21, 2024
In the Linux kernel, the following vulnerability has been resolved:
platform/x86: wmi: Fix opening of char device
Since commit fa1f68db6ca7 ("drivers: misc: pass miscdevice pointer via
file private data"), the miscdevice stores a pointer to itself inside
filp->private_data, which means that private_data will not be NULL when
wmi_char_open() is called. This might cause memory corruption should
wmi_char_open() be unable to find its driver, something which can
happen when the associated WMI device is deleted in wmi_free_devices().
Fix the problem by using the miscdevice pointer to retrieve the WMI
device data associated with a char device using container_of(). This
also avoids wmi_char_open() picking a wrong WMI device bound to a
driver with the same name as the original driver.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 4.15, < 4.19.299 | 4.19.299 |
| linux/linux_kernel | ≥ 4.20, < 5.4.261 | 5.4.261 |
| linux/linux_kernel | ≥ 5.5, < 5.10.201 | 5.10.201 |
| linux/linux_kernel | ≥ 5.11, < 5.15.139 | 5.15.139 |
| linux/linux_kernel | ≥ 5.16, < 6.1.63 | 6.1.63 |
| linux/linux_kernel | ≥ 6.2, < 6.5.12 | 6.5.12 |
| linux/linux_kernel | ≥ 6.6, < 6.6.2 | 6.6.2 |