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

ata: ahci: fail probe if BAR too small for claimed ports

When an AHCI controller is disabled in BIOS, its HOST_CAP register may
contain a bogus value, e.g. 0xFFFFFFFF.

Since CAP.NP (Number of Ports) is a zeroes based 5-bit register field,
a value of 0x1f means 32 ports. If CAP.NP claims more ports than can
physically fit within the mapped BAR region, accessing port registers
beyond the BAR boundary causes a kernel panic.

Add validation in ahci_init_one() to check that the BAR size is
sufficient for the number of ports claimed in CAP.NP. The check
calculates the required MMIO size as:

required_size = 0x100 (global registers) + max_ports * 0x80

If required_size exceeds the actual BAR size, the probe fails with
-ENODEV, preventing the panic and providing a clear error message.

[cassel: commit log]
Published: 2026-09-24
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via Kernel Panic
Action: Apply Patch
AI Analysis

Impact

A flaw in the AHCI driver causes the kernel to crash when the controller’s memory‑mapped I/O region is smaller than the number of ports advertised by the hardware. The driver calculates the required size for all ports and, if the base address register is too small, accesses memory beyond the valid range, leading to a kernel panic. The primary consequence is denial of service by bringing the system down, exposing the affected system to potential physical or local attackers able to manipulate BIOS settings or firmware.

Affected Systems

The issue affects any Linux kernel configuration that loads the AHCI driver on hardware where a BIOS may report an incorrect number of ports. The specific kernel versions are not listed in the data, so all kernels prior to the described patch are potentially affected.

Risk and Exploitability

The severity is high because a single out‑of‑bounds memory access can crash the kernel, but a formal CVSS score is not provided. The EPSS score is not available, and the vulnerability is not listed in CISA KEV, indicating no publicly known exploits yet. Attackers would likely need local or physical access to modify BIOS or firmware to set a bogus CAP.NP value, making remote exploitation unlikely at present. Nevertheless, the potential for a local denial of service warrants prompt remediation. The fix prevents the panic and gracefully reports the error instead.

Generated by OpenCVE AI on September 25, 2026 at 02:49 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Install a Linux kernel patch that adds a check in ahci_init_one to verify the BAR size against the claimed number of ports; the patch causes the probe to fail with -ENODEV rather than panic.
  • Upgrade the kernel to a version that contains the fix once it is released in the mainline update or backport it from the upstream repository.
  • If an immediate kernel upgrade is not possible, review and correct the BIOS configuration for AHCI controllers, ensuring that the controller is either enabled with valid port counts or disabled entirely, thereby preventing the address space misreport.

Generated by OpenCVE AI on September 25, 2026 at 02:49 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 25 Sep 2026 03:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119
CWE-20

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

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ata: ahci: fail probe if BAR too small for claimed ports When an AHCI controller is disabled in BIOS, its HOST_CAP register may contain a bogus value, e.g. 0xFFFFFFFF. Since CAP.NP (Number of Ports) is a zeroes based 5-bit register field, a value of 0x1f means 32 ports. If CAP.NP claims more ports than can physically fit within the mapped BAR region, accessing port registers beyond the BAR boundary causes a kernel panic. Add validation in ahci_init_one() to check that the BAR size is sufficient for the number of ports claimed in CAP.NP. The check calculates the required MMIO size as: required_size = 0x100 (global registers) + max_ports * 0x80 If required_size exceeds the actual BAR size, the probe fails with -ENODEV, preventing the panic and providing a clear error message. [cassel: commit log]
Title ata: ahci: fail probe if BAR too small for claimed ports
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-09-25T12:44:18.672Z

Reserved: 2026-09-24T14:53:16.870Z

Link: CVE-2026-97441

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-24T17:17:22.313

Modified: 2026-09-25T13:17:27.777

Link: CVE-2026-97441

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T03:00:09Z

Weaknesses
  • CWE-119

    Improper Restriction of Operations within the Bounds of a Memory Buffer

  • CWE-20

    Improper Input Validation