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: 7.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel PCI subsystem lacks validation of the ROM header and data structure addresses before accessing them. A malformed or misaligned ROM causes the kernel to perform a readl operation on an invalid address, triggering a page fault and leading to a kernel crash. This is an out‑of‑bounds memory read and results in a denial of service by terminating the kernel or affecting overall stability.

Affected Systems

All Linux kernel versions that contain the unvalidated PCI ROM access code are affected. The issue manifests on both x86_64 and arm64 architectures; the crashes are triggered by generic PCI device access or stress‑ng tests. Any distribution shipping kernels without the patch is impacted, while newer releases that include the header and alignment checks are not.

Risk and Exploitability

The vulnerability is local; an attacker must interact with a PCI device that exposes a corrupted or misaligned ROM area. The likely attack vector is a privileged local attacker who can drive the kernel to read the ROM, which the description infers from the observed crashes during stress‑ng use. The CVSS score of 7.7 indicates high severity, the EPSS score is less than 1% reflecting a low probability of exploitation in the wild, and the flaw is not listed in CISA’s KEV catalog.

Generated by OpenCVE AI on August 22, 2026 at 03:02 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to a Linux kernel version that implements PCI ROM header and alignment validation.
  • Reinstall or update all kernel packages from trusted distribution repositories to ensure the patch is applied.
  • If an immediate kernel upgrade is not feasible, temporarily disable or restrict access to vendor firmware loading from affected PCI devices until the patch is applied.

Generated by OpenCVE AI on August 22, 2026 at 03:02 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 20 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125
References
Metrics threat_severity

None

threat_severity

Moderate


Mon, 17 Aug 2026 13:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125

Mon, 17 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.7, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H'}


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-17T05:44:48.915Z

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-17T06:19:16.913

Link: CVE-2026-72487

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-72487 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T03:15:04Z

Weaknesses