CVE-2026-98018: net: mctp: i3c: serialize probe with bus removal
In the Linux kernel, the following vulnerability has been resolved:
net: mctp: i3c: serialize probe with bus removal
mctpi3cprobe() drops busdevslock after finding the matching bus. A concurrent I3CNOTIFYBUSREMOVE can then unregister and free the bus netdev before probe passes its private data to mctpi3cadddevice(). The latter consequently adds a list node through a freed mbus pointer.
Keep busdevslock held until the device has been added. This also satisfies the musthold annotation on mctpi3cadddevice().
Affected Software
Event History
Frequently Asked Questions
What conditions are required to trigger this issue?
The race requires an MCTP-over-I3C device probe to overlap with an I3C bus-removal notification. The removal can unregister and free the bus network device after probe finds the bus but before it adds the device.
What is the practical impact if the race occurs?
The probe path can pass private data associated with a freed bus netdev to mctp_i3c_add_device(). That function may then add a list node through a freed mbus pointer, resulting in a use-after-free condition.
Which systems are exposed?
Systems using the Linux kernel's MCTP I3C support are relevant when I3C device probing and bus removal can occur concurrently. The provided information does not identify affected kernel versions or indicate whether this configuration is enabled by default.
What change resolves the race?
The fix keeps busdevs_lock held until the device has been added. This prevents bus removal from freeing the bus netdev during the probe sequence and ensures mctp_i3c_add_device() is called while its required lock is held.