---
id: CVE-2026-93081
title: |-
  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 pointe…
summary: |-
  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 pointe…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 9ca67840c0ddf3f39407339624cef824a4f27599 <
    c59b3393df1348a12308aaabd5fbc58ed6b21cf5
  - >-
    Linux >= 9ca67840c0ddf3f39407339624cef824a4f27599 <
    6abe8fe36b29ff51d1a42c2f338972883f4751a5
  - Linux 91ff1e9652fb9beb0174267d6bb38243dff211bb
  - Linux ff4273d47da81b95ed9396110bcbd1b7b7470fe8
  - Linux 2fbf6c9695ad9f05e7e5c166bf43fac7cb3276b3
  - Linux 969d8beaa2e374387bf9aa5602ef84fc50bb48d8
  - Linux 8a8a3547d5c4960da053df49c75bf623827a25da
  - Linux >= 5.15.182 < 5.16
  - Linux >= 6.1.138 < 6.2
  - Linux >= 6.6.90 < 6.7
  - Linux >= 6.12.28 < 6.13
  - Linux >= 6.14.6 < 6.15
  - Linux 6.15
published: '2026-09-17'
updated: '2026-09-17'
sourceUpdated: '2026-09-17T17:18:02.063'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-93081'
references:
  - url: 'https://git.kernel.org/stable/c/6abe8fe36b29ff51d1a42c2f338972883f4751a5'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/c59b3393df1348a12308aaabd5fbc58ed6b21cf5'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
  - cve.org
ingestedAt: '2026-09-17T16:21:47.764Z'
epss: 0.00189
epssPercentile: 0.08807
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
