CVE-2026-89587: ACPI: pfr_update: fix stack buffer overflow in query_capability()
ACPI: pfrupdate: fix stack buffer overflow in querycapability()
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 6.1.190-1Fixed in 6.12.115-2Fixed in 7.2.12-1Fixed in 7.2.15-1 - Upgrade
Upgrade
debian/linux-6.12to a version that resolves this vulnerability.Fixed in 6.12.113-1~deb12u1 - Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 6.1.188 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 6.6.157 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 6.12.109 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 6.18.50 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 7.2.4
Event History
Frequently Asked Questions
What systems are exposed to this issue?
Systems using the Linux kernel's ACPI PFR update functionality are exposed when firmware provides a crafted or malformed _DSM response containing one or more capability buffers longer than 16 bytes. The vulnerable copy occurs while handling the relevant capability query through pfru_ioctl().
What does an attacker or triggering condition need to exploit the overflow?
The triggering condition is firmware-controlled ACPI _DSM data with an oversized buffer for code_type, drv_type, platform_id, or oem_id. A buffer longer than 16 bytes causes a memcpy into a fixed-size 16-byte stack field without a length check.
How can this be detected or confirmed?
KASAN can detect the condition as stack-out-of-bounds writes during the capability query. In the reported test case, 64-byte _DSM buffers produced three reports and writes up to 44 bytes beyond the relevant stack frame window.
What behavior changes after the fix?
The fix validates each firmware-provided buffer length against the size of its destination field before copying. If firmware supplies an oversized buffer, the capability query fails with -EINVAL instead of copying the data.