CVE-2026-93086

Summary

In the Linux kernel, the following vulnerability has been resolved:

firmware: arm_scmi: Avoid IDR updates while cleaning channels

scmi_cleanup_channels() walks the TX/RX channel IDRs with idr_for_each() to free transport resources and destroy the dedicated transport devices before calling idr_destroy().

The destroy callback removed each entry from the same IDR being walked. That is not needed for this cleanup path, and it is unsafe because idr_for_each() has not advanced its radix-tree iterator while the callback is running. Removing the current entry from the callback can invalidate the iterator state. The callback also cannot be protected by rcu_read_lock(), because scmi_device_destroy() may sleep.

Leave IDR teardown to the following idr_destroy() call and keep the callback limited to device destruction.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux05a2801d8b90c1b5159618d4bd3a3c65d60f3ff1 < aed24a3c63920539e9de7fbfe7929a2e7c888cd2affected
LinuxLinux05a2801d8b90c1b5159618d4bd3a3c65d60f3ff1 < 431c6b872ba7fedcc5a3afb0ec3517db4d95d088affected
LinuxLinux05a2801d8b90c1b5159618d4bd3a3c65d60f3ff1 < 54e5a4f7d83db4552d963d0785be32d9df680dcdaffected
LinuxLinux05a2801d8b90c1b5159618d4bd3a3c65d60f3ff1 < bab26acebe55e8ad3ab545abda72faa7ca28c477affected
LinuxLinux05a2801d8b90c1b5159618d4bd3a3c65d60f3ff1 < c38b1e19485aaa820e52cfe162525a8af67563daaffected
LinuxLinux6.3affected
LinuxLinux0 < 6.3unaffected
LinuxLinux6.6.157 <= 6.6.*unaffected
LinuxLinux6.12.110 <= 6.12.*unaffected
LinuxLinux6.18.52 <= 6.18.*unaffected
LinuxLinux7.2.6 <= 7.2.*unaffected
LinuxLinux7.3-rc1 <= *unaffected

Weaknesses

References