ZeroHour

CVE-2026-80952

niche

Kernel Stack Info Leak and Use-After-Free in Linux I3C Device Unregister Path

CVSS 3.1
7.8 high
EPSS
Published
()
Modified
AI analysis

A flaw in the Linux kernel's I3C subsystem causes i3c_master_unregister_i3c_devs() to clear the device descriptor (desc) before device_unregister() completes, so KOBJ_REMOVE uevent handling, modalias_show(), and driver .remove() callbacks can observe a NULL desc and fall back to an uninitialized stack struct i3c_device_info. This leaks kernel stack memory contents through the generated modalias string, and writing desc after the device reference is dropped can also trigger a use-after-free. Exploitation requires local access with some privileges on the machine (CVSS 7.8, AV:L/PR:L), and an attacker could gain disclosure of sensitive kernel memory plus potential memory corruption affecting confidentiality, integrity, and availability. Only systems whose kernels enable the I3C master driver and have actual I3C controller hardware are exposed, which is a small subset of embedded devices rather than typical servers or desktops. No public proof of concept is known and the issue is not on the CISA KEV list.

What to do: Apply your distribution's kernel update once it carries the fix (the patch holds desc valid across device_unregister() using get_device()/put_device()). Verify whether your fleet uses I3C hardware (CONFIG_I3C and i3c-master drivers in use) to prioritize patching; systems without I3C controllers are not practically exposed. No workaround beyond patching is indicated, but the local-privilege prerequisite means standard least-privilege controls limit near-term risk.

Affected
Linux kernel (i3c master subsystem)
Estimated exposure
nicheunknown exact count; realistically limited to embedded/ARM SoC devices that ship I3C controllers and enable the i3c-master driver — I3C is a niche sensor/bus protocol supported on only select embedded SoCs, so the vulnerable code path is rarely compiled in or exercised on mainstream servers, desktops, or phones; no public scan data breaks out I3C-capable hosts.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

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.

Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.