data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-97452 in the interactive tracker

CVE-2026-97452

ACPICA: Prevent adding invalid references

8.4 EPSS 0.1% AV:L

Published 2026-09-24 (24 days ago) by the Linux kernel CNA. Subsystem drivers/acpi. Debian urgency: not yet assigned.

What to do, per Debian release

Debian's own status for CVE-2026-97452 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source

ReleaseStatus VersionWhat this means
Debian 12bookwormfixedDLA-4841-1 · 2026-10-17 · text6.1.190-1Update the kernel and reboot. DLA-4841-1 shipped the fix on 2026-10-17, in 6.1.190-1. A running kernel keeps the old code until the machine restarts.
Debian 13trixiefixedDSA-6528-1 · 2026-09-29 · text6.12.111-1Update the kernel and reboot. DSA-6528-1 shipped the fix on 2026-09-29, in 6.12.111-1. A running kernel keeps the old code until the machine restarts.
Debian 14forkyfixed7.2.6-1Update the kernel and reboot. Fixed in 7.2.6-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.2.6-1Update the kernel and reboot. Fixed in 7.2.6-1. A running kernel keeps the old code until the machine restarts.
Debian 12bookworm · linux-6.12fixedDLA-4817-1 · 2026-10-04 · text6.12.111-1~deb12u1Update the kernel and reboot. DLA-4817-1 shipped the fix on 2026-10-04, in 6.12.111-1~deb12u1. A running kernel keeps the old code until the machine restarts.

The vulnerability

What the bug is

Prevent adding references for local, argument, and debug objects in acpi_ut_copy_simple_object().

Where it lives

The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.

drivers/acpi/acpica/utcopy.c

What this is
ACPI COMPONENT ARCHITECTURE (ACPICA)MAINTAINERS section matched on drivers/acpi/acpica/ · linux-acpi@vger.kernel.org · Supported

Check it on the machine

grep -w CONFIG_ACPI /boot/config-$(uname -r)

Reads the booted kernel's own configuration, on the machine and nowhere else. =y is built in, =m is a module, and an is not set line means the code is not there.

Show whether Debian builds this, per release

Debian builds this, but not on every flavour. At least one release below builds the code on some of its kernel flavours and not on others, so the answer depends on the architecture and flavour installed.

  • bookwormYnot built on armhf/armmp, armhf/armmp-lpae, armhf/rt/armmp, ppc64el/powerpc64le
  • trixieYnot built on armel/rpi, armhf/armmp, armhf/armmp-lpae, armhf/rt/armmp, ppc64el/powerpc64le, ppc64el/powerpc64le-64k, s390x/s390x
  • forky, sidYnot built on armhf/armmp, armhf/armmp-lpae, ppc64el/powerpc64le, ppc64el/powerpc64le-64k, s390x/s390x
  • bookworm · linux-6.12Ynot built on armhf/armmp, armhf/armmp-lpae, armhf/rt/armmp, ppc64el/powerpc64le, ppc64el/powerpc64le-64k
Y
built in where it is built at all; some flavours do not build it
Build switch
CONFIG_ACPI

From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS kbuild Makefiles Debian linux-config packages

Signals

Published
2026-09-24 (24 days ago)source
CVSS
8.4 high
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hsource recompute it
Attack vector
local (AV:L)source
EPSS
0.14%, higher than 3.1% of all CVEssource
CISA KEV
not listedthe KEV catalogue
Debian urgency
not yet assignedsource
Subsystem
drivers/acpi

Upstream fixes

The versions the CNA records as introducing and fixing this, and the commit for each. source

IntroducedFixed inCommit
2.6.125.10.2712350a6f89eca
2.6.125.15.22261cb905c33d0
2.6.126.1.189d239ccf5069f
2.6.126.6.158c2cf936b07b0
2.6.126.12.111e16d1e5fcb17
2.6.126.18.53a6cd2fc2d542
2.6.127.26e8c55e13a5e

Debian advisories

AdvisoryDateShipped toDebian
DLA-4841-12026-10-17bookworm 6.1.190-1tracker
DLA-4817-12026-10-04bookworm 6.12.111-1~deb12u1tracker
DSA-6528-12026-09-29trixie 6.12.111-1tracker

Why the CNA scored it this way

Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source

AV:LAttack vector, local
The attacker-controlled AML is a CopyObject of a Package whose elements are Local/Arg/Debug references, carried in a DSDT/SSDT rather than a network message. The patched acpi_ut_copy_simple_object() is reached from acpi_ex_opcode_1A_1T_1R(AML_COPY_OBJECT_OP) during acpi_bus_init→acpi_load_tables→acpi_tb_load_namespace→acpi_ns_load_table→acpi_ns_execute_table.
AC:LAttack complexity, low
acpi_ds_init_object_from_op() sets a Local/Arg reference.object to &walk_state->local_variables[i]/arguments[i]; after that method returns, acpi_ps_parse_aml() calls acpi_ds_delete_walk_state(). A later module-level CopyObject of the surviving package always UAF-reads that freed node in acpi_ut_add_reference(); the AML author sequences both sides with no race.
PR:NPrivileges required, none
acpi_bus_init() calls acpi_load_tables() which runs module-level CopyObject via acpi_ns_execute_table() with no uid or capable() check; a DSDT/SSDT that stores Package(){Local0} from a nested method then CopyObject's it triggers the UAF at boot without a Linux account or configfs SSDT load.
UI:NUser interaction, none
acpi_ns_execute_table() evaluates the table's module-level AML, including the nested method that plants the Local/Arg refs and the subsequent CopyObject, during acpi_load_tables() at ordinary power-on; no mount, file-open, or other victim action is required.
S:UScope, unchanged
The UAF is of the kmalloc'd struct acpi_walk_state (its local_variables/arguments pseudo-nodes) inside the host ACPICA interpreter after acpi_ds_delete_walk_state(); it does not cross a KVM/Xen, IOMMU, or sandbox boundary.
C:HConfidentiality impact, high
acpi_ut_valid_internal_object() reads descriptor_type from the freed walk_state (the reported 1-byte KASAN UAF at the CopyObject copy). Reclaiming that slab as a fake ACPI_DESC_TYPE_OPERAND lets acpi_ut_update_object_reference walk attacker-chosen nested pointers, a UAF read primitive.
I:HIntegrity impact, high
If the freed walk_state is sprayed as a valid operand, acpi_ut_copy_simple_object()'s acpi_ut_add_reference() calls acpi_ut_update_object_reference(REF_INCREMENT) on attacker-controlled type and nested pointers, a UAF write/refcount-increment primitive; memcpy also plants the dangling pointer into the dest copy.
A:HAvailability impact, high
The KASAN report is a heap-use-after-free in acpi_ut_valid_internal_object() on the CopyObject path after acpi_ds_delete_walk_state(); using that dangling Local/Arg node pointer oopses/panics, and any UAF is Availability High.