Description
In the Linux kernel, the following vulnerability has been resolved: i3c: master: Fix info leak and UAF in device unregister path i3c_master_unregister_i3c_devs() clears i3cdev->dev->desc before calling device_unregister(). During device_unregister(), device_del() emits a KOBJ_REMOVE uevent and unbinds the driver while the device descriptor is still expected to be valid. As a result, i3c_device_uevent() and a racing modalias_show() can observe a NULL desc and fall back to an uninitialized stack struct i3c_device_info, leaking kernel stack contents in the generated modalias. Driver .remove() callbacks may also encounter an unexpected NULL desc during unbind. Keep desc valid until device_unregister() has completed. Since device_unregister() drops the device reference and may free the device, take an extra reference with get_device() before unregistering. Clear desc afterwards and release the extra reference with put_device(). This preserves the release-time invariant that desc must be NULL while avoiding both the information leak and a potential use-after-free from writing desc after the device has been released.
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
3a379bbcea0af6280e1ca0d1edfcf4e68cde6ee0 to < 334cfb5e285cece5dc49fb3fb8ea9b70b2cb5d7eaffected3a379bbcea0af6280e1ca0d1edfcf4e68cde6ee0 to < 109995153898454c7795c2c299fd0a0b57456a4baffected3a379bbcea0af6280e1ca0d1edfcf4e68cde6ee0 to < c64daaaba08e490c8347ff60aacac4dd51249f91affected3a379bbcea0af6280e1ca0d1edfcf4e68cde6ee0 to < ef72ff6650c4ebf2b444708d84df66db42f262d9affected3a379bbcea0af6280e1ca0d1edfcf4e68cde6ee0 to < c16b6f25e0cc2dd1055dde1256cbf5a9e888cf49affected3a379bbcea0af6280e1ca0d1edfcf4e68cde6ee0 to < 94fb9786d67a8f8b899e77381620f86bad94fdf7affected3a379bbcea0af6280e1ca0d1edfcf4e68cde6ee0 to < 4837be0f9ac2efe5e83b35a696b6242c473d280caffected3a379bbcea0af6280e1ca0d1edfcf4e68cde6ee0 to < d2c743efd2d1ee64e94324664808f623dd865872affected
Linux Linux
Default version status: affected
5.0affected0 to < 5.0unaffected5.10.270 to ≤ 5.10.*unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.109 to ≤ 6.12.*unaffected6.18.50 to ≤ 6.18.*unaffected7.2.4 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/334cfb5e285cece5dc49fb3fb8ea9b70b2cb5d7e ↗
- https://git.kernel.org/stable/c/109995153898454c7795c2c299fd0a0b57456a4b ↗
- https://git.kernel.org/stable/c/c64daaaba08e490c8347ff60aacac4dd51249f91 ↗
- https://git.kernel.org/stable/c/ef72ff6650c4ebf2b444708d84df66db42f262d9 ↗
- https://git.kernel.org/stable/c/c16b6f25e0cc2dd1055dde1256cbf5a9e888cf49 ↗
- https://git.kernel.org/stable/c/94fb9786d67a8f8b899e77381620f86bad94fdf7 ↗
- https://git.kernel.org/stable/c/4837be0f9ac2efe5e83b35a696b6242c473d280c ↗
- https://git.kernel.org/stable/c/d2c743efd2d1ee64e94324664808f623dd865872 ↗