Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
44b6b7661132b1b0e5fd3147ded66f1e4a817ca9 to < cf098e937dd125c0317a0d6f261ac2a950a233d6affected44b6b7661132b1b0e5fd3147ded66f1e4a817ca9 to < 9fb0eed09e1470cd4021ff52b2b9dfcbcee4c203affected44b6b7661132b1b0e5fd3147ded66f1e4a817ca9 to < d426a2955e45a95b2282764105fcfb110a540453affected44b6b7661132b1b0e5fd3147ded66f1e4a817ca9 to < e0bf076b734a2fab92d8fddc2b8b03462eee7097affected44b6b7661132b1b0e5fd3147ded66f1e4a817ca9 to < 44a96796d25809502c75771d40ee693c2e44724eaffected44b6b7661132b1b0e5fd3147ded66f1e4a817ca9 to < 36d85fa7ae0d6be651c1a745191fa7ef055db43eaffected44b6b7661132b1b0e5fd3147ded66f1e4a817ca9 to < fb7b06b59c6887659c6ed0ecd3110835eecbb6a3affected44b6b7661132b1b0e5fd3147ded66f1e4a817ca9 to < eba9ac7abab91c8f6d351460239108bef5e7a0b6affected
Linux Linux
Default version status: affected
4.15affected0 to < 4.15unaffected4.19.299 to ≤ 4.19.*unaffected5.4.261 to ≤ 5.4.*unaffected5.10.201 to ≤ 5.10.*unaffected5.15.139 to ≤ 5.15.*unaffected6.1.63 to ≤ 6.1.*unaffected6.5.12 to ≤ 6.5.*unaffected6.6.2 to ≤ 6.6.*unaffected6.7 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/cf098e937dd125c0317a0d6f261ac2a950a233d6 ↗
- https://git.kernel.org/stable/c/9fb0eed09e1470cd4021ff52b2b9dfcbcee4c203 ↗
- https://git.kernel.org/stable/c/d426a2955e45a95b2282764105fcfb110a540453 ↗
- https://git.kernel.org/stable/c/e0bf076b734a2fab92d8fddc2b8b03462eee7097 ↗
- https://git.kernel.org/stable/c/44a96796d25809502c75771d40ee693c2e44724e ↗
- https://git.kernel.org/stable/c/36d85fa7ae0d6be651c1a745191fa7ef055db43e ↗
- https://git.kernel.org/stable/c/fb7b06b59c6887659c6ed0ecd3110835eecbb6a3 ↗
- https://git.kernel.org/stable/c/eba9ac7abab91c8f6d351460239108bef5e7a0b6 ↗