CVE Catalog

CVE-2026-93283

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel, the error path of device_register() in i3c_master_register_new_i3c_devs() fails to clear desc->dev->desc and desc->dev before releasing the device. This triggers a WARN_ON and leaves a dangling pointer to freed memory, potentially causing a use-after-free.

Risk Assessment

Can lead to use-after-free and kernel instability, potentially causing a system panic or privilege escalation in kernel context.

Recommendation

Update the Linux kernel to a version containing the fix that clears desc->dev->desc and desc->dev before calling put_device() in the error path.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: i3c: master: Fix device_register() error path When device_register() fails in i3c_master_register_new_i3c_devs(), put_device() is called to drop the reference taken by device_register(). That drops the last reference, so the device's release callback i3c_device_release() runs and frees the i3c_device. Two problems follow from that: i3c_device_release() does WARN_ON(i3cdev->desc), so it warns because desc->dev->desc still points back at the descriptor. Clear it before calling put_device(). After put_device() frees the i3c_device, desc->dev is left pointing at freed memory, so clear desc->dev as well. That prevents, for example, i3c_master_unregister_i3c_devs() seeing desc->dev as non-NULL and dereferencing it.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS