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

ACPI: bus: Introduce acpi_bus_get_primary_device()

The function used for obtaining the first "physical" device for which
the given ACPI one is the ACPI companion, acpi_get_first_physical_node(),
may return a stale device pointer (mostly in theory) because
acpi_unbind_one() may run as a whole after dropping the ACPI device's
physical_node_lock in acpi_get_first_physical_node() and before it
returns. The last reference to the "physical" device may be dropped
then before the pointer to it is returned to the caller.

If that happens and the acpi_get_first_physical_node() caller invokes
get_device() on the pointer obtained from it, which is done by the
majority of its callers, a use-after-free will occur.

To prepare for addressing this problem, introduce a new function for
getting the first "physical" device associated with the given ACPI one
(the "primary physical device") that will also reference count the
device in question before returning a pointer to it.

Make that new function and acpi_get_first_physical_node() share the
physical node list lookup code.

No intentional functional impact.
Published: 2026-09-24
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: Use‑After‑Free in ACPI device retrieval
Action: Immediate Patch
AI Analysis

Impact

In the Linux‑kernel ACPI subsystem, a race condition can cause the routine that obtains the first physical device linked to an ACPI device to return a stale pointer. The routine may release the device’s lock after a concurrent unbinding operation while the pointer is still in use, and most callers then dereference that pointer, leading to a classic use‑after‑free scenario that corrupts memory or crashes the kernel.

Affected Systems

All Linux kernel installations are potentially affected until the patch that introduces the function acpi_bus_get_primary_device and adds reference counting is applied. The change is generic to the kernel’s ACPI driver stack and does not target a specific release series.

Risk and Exploitability

The vulnerability does not yet appear in CISA’s KEV catalog and its EPSS score is not available, indicating limited public exploitation data. However, use‑after‑free bugs can enable attackers to corrupt memory, crash privileged processes, or, in the worst case, allow arbitrary code execution if the corrupted memory is exploitable. Without a publicly documented exploit, the risk remains moderate but not negligible, especially for systems exposed to untrusted ACPI input.

Generated by OpenCVE AI on September 25, 2026 at 11:06 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the latest stable Linux kernel version that incorporates the acpi_bus_get_primary_device fix (commits 5657859851abb6 and 72530e1f).
  • Reboot the system after the kernel update so the new code is loaded.
  • Validate the kernel upgrade in a staging environment and monitor for ACPI‑related crashes or stability issues before deploying to production.

Generated by OpenCVE AI on September 25, 2026 at 11:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 15 Oct 2026 13:30:00 +0000


Fri, 25 Sep 2026 11:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Thu, 24 Sep 2026 16:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ACPI: bus: Introduce acpi_bus_get_primary_device() The function used for obtaining the first "physical" device for which the given ACPI one is the ACPI companion, acpi_get_first_physical_node(), may return a stale device pointer (mostly in theory) because acpi_unbind_one() may run as a whole after dropping the ACPI device's physical_node_lock in acpi_get_first_physical_node() and before it returns. The last reference to the "physical" device may be dropped then before the pointer to it is returned to the caller. If that happens and the acpi_get_first_physical_node() caller invokes get_device() on the pointer obtained from it, which is done by the majority of its callers, a use-after-free will occur. To prepare for addressing this problem, introduce a new function for getting the first "physical" device associated with the given ACPI one (the "primary physical device") that will also reference count the device in question before returning a pointer to it. Make that new function and acpi_get_first_physical_node() share the physical node list lookup code. No intentional functional impact.
Title ACPI: bus: Introduce acpi_bus_get_primary_device()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-15T10:11:44.909Z

Reserved: 2026-09-17T16:02:15.096Z

Link: CVE-2026-93251

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-24T16:17:21.340

Modified: 2026-10-15T11:18:07.483

Link: CVE-2026-93251

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T11:15:05Z

Weaknesses