← CVE Intelligence

CVE-2026-93081

firmware: arm_scmi: Fix SCMI device destroy lifetimes PUBLISHED

Description (CNA)

In the Linux kernel, the following vulnerability has been resolved: firmware: arm_scmi: Fix SCMI device destroy lifetimes scmi_child_dev_find() drops the reference returned by device_find_child() before returning the scmi_device pointer. A concurrent unregister can then release the device while the destroy path is still using the returned pointer. Make the lookup helper return the device_find_child() reference and keep it until scmi_device_destroy() has finished unregistering the child. Also split device_unregister() in __scmi_device_destroy() so the SCMI bus ID is not made reusable until after device_del() has removed the old scmi_dev.N name from sysfs. This avoids a new SCMI device reusing the same ID while the old device is still registered. The final device release callback is also a possible cleanup path when SCMI children are deleted by driver core recursion rather than __scmi_device_destroy(). Release the SCMI bus ID from a common helper used by destroy, register-failure and final-release paths, and clear scmi_dev->id after freeing it so the final release cannot free the same ID again.

Affected (CNA)

Vendor / productVersions
Linux / Linuxaffected 2fbf6c9695ad9f05e7e5c166bf43fac7cb3276b3 before d8ecdceeb90cd2c265b222a7b65487faf68fea73; affected 969d8beaa2e374387bf9aa5602ef84fc50bb48d8 before 916e27f71a80f6d77c48d1a1a5782d6d5ef9017c; affected 9ca67840c0ddf3f39407339624cef824a4f27599 before a60bc2df2d323cc1342f0cf95563cae266801e20; affected 9ca67840c0ddf3f39407339624cef824a4f27599 before c59b3393df1348a12308aaabd5fbc58ed6b21cf5; affected 9ca67840c0ddf3f39407339624cef824a4f27599 before 6abe8fe36b29ff51d1a42c2f338972883f4751a5; affected 91ff1e9652fb9beb0174267d6bb38243dff211bb; affected ff4273d47da81b95ed9396110bcbd1b7b7470fe8; affected 8a8a3547d5c4960da053df49c75bf623827a25da; affected 6.6.90 before 6.6.160; affected 6.12.28 before 6.12.114; affected 5.15.182 before 5.16; affected 6.1.138 before 6.2; affected 6.14.6 before 6.15
Linux / Linuxaffected 6.15; unaffected 0 before 6.15; unaffected 6.6.160 through 6.6.*; unaffected 6.12.114 through 6.12.*; unaffected 6.18.57 through 6.18.*; unaffected 7.2.6 through 7.2.*; unaffected 7.3 through *

CWE

No CWE identifiers supplied.

References