KernelScan.io

HIGH Introduced in 2.6.12

acpica AmlParser OOB

CVE-2026-97444

CVSS 7.7 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H

KernelScan AI6.0MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: ACPICA: add boundary checks in two places Add boundary checks in acpi_ps_get_next_namestring() and acpi_ps_peek_opcode() to prevent out-of-bounds access.

02

Engine v0.6.0

Risk summary

A malformed ACPI table can cause the kernel's AML parser to read beyond the allocated buffer, potentially leaking kernel heap memory or crashing the system. Exploitation requires supplying a crafted ACPI table via firmware compromise, boot configuration tampering, or runtime table override — all requiring root or physical access. Systems with verified boot chains are protected against the most common attack paths.

Affecteddrivers/acpi/acpica/psargs.c, drivers/acpi/acpica/psparse.c (ACPICA AML parser)

Vulnerability analysis

The ACPI AML parser processes bytecode from firmware-supplied ACPI tables at boot and during runtime table loads. Two parser functions fail to verify that the current parsing position has not exceeded the end of the AML buffer before dereferencing pointers — one iterates past namestring prefix characters in an unbounded loop, and another reads opcode bytes without a boundary check. A malformed ACPI table can cause the parser to read kernel memory beyond the allocated buffer, leading to a kernel panic or potential information disclosure from adjacent heap data. The fix adds explicit boundary checks before each pointer dereference, causing the parser to return an error value and stop processing when the buffer end is reached. This vulnerability is only reachable by supplying a crafted ACPI table, which requires compromised firmware, physical access to modify the boot configuration, or root-level access to override ACPI tables via initrd or configfs.

03

BranchIntroducedFixed inPatch commit
5.102.6.125.10.2713a8c1efc0fd3
5.152.6.125.15.222c917df56b737
6.12.6.126.1.1894f03d84c95a5
6.62.6.126.6.15838ee32a9ace6
6.122.6.126.12.111253d7272d01d
6.182.6.126.18.534de2cffef5e6
mainline2.6.127.2bdc357540129
cip/6.122.6.126.12.111-cip32253d7272d01d