CVE-2026-93084: firmware: arm_scmi: Drop handle on protocol bind failures

Published Sep 17, 2026
·
Updated

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

firmware: armscmi: Drop handle on protocol bind failures

The SCMI bus notifier acquires an SCMI handle when the driver core emits BUSNOTIFYBINDDRIVER, before invoking the protocol driver probe callback. The protocol probe path only checks whether sdev->handle is set.

If devicelinkadd() fails after the handle has been acquired, the protocol device can still bind with a valid handle but without the dependency link to the SCMI parent. A concurrent parent unbind can then miss the child and tear down the SCMI instance while the child still holds a handle into it.

If the protocol driver probe later fails, for example with -EPROBEDEFER, the driver core emits BUSNOTIFYDRIVERNOTBOUND rather than BUSNOTIFYUNBOUNDDRIVER. The SCMI notifier only released the handle on BUSNOTIFYUNBOUNDDRIVER, so each failed protocol-device bind leaked the SCMI instance users refcount and left sdev->handle set after the failed probe.

Make the link helper report failure and drop the acquired handle if the link cannot be created. Also handle BUSNOTIFYDRIVERNOTBOUND in the same cleanup path used for unbind so failed probes balance the earlier BUSNOTIFYBINDDRIVER acquisition.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 17, 2026
CVE Published
via MITRE·04:11 PM
Data Sourced
via MITRE·04:11 PM
Description

Frequently Asked Questions

1

Which deployments are exposed to this issue?

Deployments using the Linux kernel SCMI bus with protocol devices and protocol drivers are relevant. The failure paths involve SCMI protocol-driver binding, SCMI parent-device unbinding, and device-link creation.

2

What conditions are needed for the use-after-teardown risk?

An SCMI handle must be acquired during driver binding, followed by failure to create the dependency link to the SCMI parent. If the protocol device subsequently binds without that link, a concurrent parent unbind can tear down the SCMI instance while the child retains its handle.

3

What happens when a protocol driver probe fails?

A failed probe, including a failure such as -EPROBE_DEFER, produces BUS_NOTIFY_DRIVER_NOT_BOUND rather than BUS_NOTIFY_UNBOUND_DRIVER. Before the fix, this path did not release the SCMI handle, so repeated failed protocol-device binds could leak SCMI instance user references and leave sdev->handle set.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203