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

PCI: Check ROM header and data structure addr before accessing

We meet a crash when running stress-ng on x86_64 machine:

BUG: unable to handle page fault for address: ffa0000007f40000
RIP: 0010:pci_get_rom_size+0x52/0x220
Call Trace:
<TASK>
pci_map_rom+0x80/0x130
pci_read_rom+0x4b/0xe0
kernfs_file_read_iter+0x96/0x180
vfs_read+0x1b1/0x300

Our analysis reveals that the ROM space's start address is
0xffa0000007f30000, and size is 0x10000. Because of broken ROM space,
before calling readl(pds), the pds's value is 0xffa0000007f3ffff, which is
already pointed to the ROM space end, invoking readl() would read 4 bytes
therefore cause an out-of-bounds access and trigger a crash. Fix this by
adding image header and data structure checking.

We also found another crash on arm64 machine:

Unable to handle kernel paging request at virtual address ffff8000dd1393ff
Mem abort info:
ESR = 0x0000000096000021
EC = 0x25: DABT (current EL), IL = 32 bits
SET = 0, FnV = 0
EA = 0, S1PTW = 0
FSC = 0x21: alignment fault

The call trace is the same with x86_64, but the crash reason is that the
data structure addr is not aligned with 4, and arm64 machine report
"alignment fault". Fix this by adding alignment checking.

[bhelgaas: shorten function names, wrap comments]
Published: 2026-08-15
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

This vulnerability originates in the Linux kernel’s PCI subsystem where the ROM header and data structure addresses are not validated before access. The missing checks allow an out-of-bounds read of an unmapped region or misaligned address, which results in a kernel page fault and a crash. The impact is a denial of service, as the kernel terminates the offending process or the entire system can become unstable if invoked by privileged or kernel processes. The weakness is a classic out-of-bounds read (CWE‑125).

Affected Systems

Linux kernel releases prior to the fix (any version containing the unvalidated PCI ROM access code) are affected. The issue manifests on both x86_64 and arm64 architectures, as shown by crashes triggered by stress-ng or generic PCI access attempts. Vendors that ship kernels without the beyond‑check patch are impacted, while newer kernel releases that include the header and alignment validation are not.

Risk and Exploitability

The vulnerability is local and requires interaction with a PCI device that presents a corrupted or misaligned ROM area. The exploit does not require code execution beyond an out-of-bounds read, so an attacker cannot directly execute arbitrary code, but can force a system crash. The EPSS score is not available, and the vulnerability is not currently listed in CISA’s KEV catalog, suggesting no publicly known exploitation to date. Nonetheless, the critical nature of a kernel crash warrants immediate attention, and the risk is higher on systems that regularly perform PCI device enumeration or firmware updates that might trigger erroneous ROM reads.

Generated by OpenCVE AI on August 15, 2026 at 12:13 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply an updated Linux kernel that contains the PCI ROM header and data structure validation patch.
  • Verify that all kernel packages are up to date and sourced from trusted distribution repositories.
  • If an immediate kernel upgrade is not possible, restrict or disable access to faulty PCI ROM regions for non‑essential firmware updates until the patch is applied.

Generated by OpenCVE AI on August 15, 2026 at 12:13 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 15 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: PCI: Check ROM header and data structure addr before accessing We meet a crash when running stress-ng on x86_64 machine: BUG: unable to handle page fault for address: ffa0000007f40000 RIP: 0010:pci_get_rom_size+0x52/0x220 Call Trace: <TASK> pci_map_rom+0x80/0x130 pci_read_rom+0x4b/0xe0 kernfs_file_read_iter+0x96/0x180 vfs_read+0x1b1/0x300 Our analysis reveals that the ROM space's start address is 0xffa0000007f30000, and size is 0x10000. Because of broken ROM space, before calling readl(pds), the pds's value is 0xffa0000007f3ffff, which is already pointed to the ROM space end, invoking readl() would read 4 bytes therefore cause an out-of-bounds access and trigger a crash. Fix this by adding image header and data structure checking. We also found another crash on arm64 machine: Unable to handle kernel paging request at virtual address ffff8000dd1393ff Mem abort info: ESR = 0x0000000096000021 EC = 0x25: DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 FSC = 0x21: alignment fault The call trace is the same with x86_64, but the crash reason is that the data structure addr is not aligned with 4, and arm64 machine report "alignment fault". Fix this by adding alignment checking. [bhelgaas: shorten function names, wrap comments]
Title PCI: Check ROM header and data structure addr before accessing
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-08-15T05:57:23.490Z

Reserved: 2026-08-09T03:40:39.936Z

Link: CVE-2026-72487

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:22:22.973

Modified: 2026-08-15T06:22:22.973

Link: CVE-2026-72487

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-15T12:15:03Z

Weaknesses