CyberRota Analysis
AI-GeneratedThe vulnerability affects the Linux kernel's i3c subsystem, specifically during the device unregistration process, where an improper handling of the device descriptor can lead to an information leak and potential use-after-free conditions. This flaw allows uninitialized stack memory to be exposed through kernel events, which could compromise system integrity and confidentiality. Organizations utilizing Linux systems with i3c devices should prioritize addressing this vulnerability to mitigate risks associated with data leakage and driver stability.
Original NVD 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.