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

ima: verify the previous kernel's IMA buffer lies in addressable RAM

Patch series "Address page fault in ima_restore_measurement_list()", v3.

When the second-stage kernel is booted via kexec with a limiting command
line such as "mem=<size>" we observe a pafe fault that happens.

BUG: unable to handle page fault for address: ffff97793ff47000
RIP: ima_restore_measurement_list+0xdc/0x45a
#PF: error_code(0x0000) not-present page

This happens on x86_64 only, as this is already fixed in aarch64 in
commit: cbf9c4b9617b ("of: check previous kernel's ima-kexec-buffer
against memory bounds")


This patch (of 3):

When the second-stage kernel is booted with a limiting command line (e.g.
"mem=<size>"), the IMA measurement buffer handed over from the previous
kernel may fall outside the addressable RAM of the new kernel. Accessing
such a buffer can fault during early restore.

Introduce a small generic helper, ima_validate_range(), which verifies
that a physical [start, end] range for the previous-kernel IMA buffer lies
within addressable memory:
- On x86, use pfn_range_is_mapped().
- On OF based architectures, use page_is_ram().
Published: 2026-05-06
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

When the second‑stage kernel is launched using kexec with a memory limiting argument like "mem=<size>", the IMA measurement buffer supplied from the previous kernel can lie outside the addressable RAM of the new kernel. Accessing such a buffer triggers a page fault during the early restore phase, causing a kernel panic. This manifests as a buffer‑over‑read fault that leads to a denial of service for the entire system.

Affected Systems

The bug is present in the IMA subsystem of the Linux kernel on x86_64 processors. It is fixed in aarch64 by commit cbf9c4b9, but the problem remains in all x86_64 kernels that do not yet include the patch from the third commit of the series (introducing ima_validate_range()). Affected kernels are those prior to the inclusion of this helper in the mainline.

Risk and Exploitability

There is no EPSS data and the vulnerability is not listed in CISA KEV. The flaw results in a critical denial of service through an unhandled page fault. Exploitation requires the attacker to control or influence the kexec boot process, which is typically limited to privileged or local users. While the probability of exploitation is low under normal operation, it is potentially high if an attacker can insert a crafted mem= parameter or otherwise trigger kexec on a vulnerable kernel.

Generated by OpenCVE AI on May 6, 2026 at 13:26 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a kernel update that provides the patch series "Address page fault in ima_restore_measurement_list()", v3, which validates the IMA buffer range
  • Reconfigure kexec to omit or correctly set the mem= parameter so that the second‑stage kernel maps sufficient RAM for the IMA buffer
  • Enable early kernel logging or debug output to detect unexpected page faults during IMA restoration

Generated by OpenCVE AI on May 6, 2026 at 13:26 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 06 May 2026 13:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119

Wed, 06 May 2026 12:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ima: verify the previous kernel's IMA buffer lies in addressable RAM Patch series "Address page fault in ima_restore_measurement_list()", v3. When the second-stage kernel is booted via kexec with a limiting command line such as "mem=<size>" we observe a pafe fault that happens. BUG: unable to handle page fault for address: ffff97793ff47000 RIP: ima_restore_measurement_list+0xdc/0x45a #PF: error_code(0x0000) not-present page This happens on x86_64 only, as this is already fixed in aarch64 in commit: cbf9c4b9617b ("of: check previous kernel's ima-kexec-buffer against memory bounds") This patch (of 3): When the second-stage kernel is booted with a limiting command line (e.g. "mem=<size>"), the IMA measurement buffer handed over from the previous kernel may fall outside the addressable RAM of the new kernel. Accessing such a buffer can fault during early restore. Introduce a small generic helper, ima_validate_range(), which verifies that a physical [start, end] range for the previous-kernel IMA buffer lies within addressable memory: - On x86, use pfn_range_is_mapped(). - On OF based architectures, use page_is_ram().
Title ima: verify the previous kernel's IMA buffer lies in addressable RAM
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-05-06T11:27:18.180Z

Reserved: 2026-05-01T14:12:55.988Z

Link: CVE-2026-43129

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-05-06T12:16:29.963

Modified: 2026-05-06T13:07:51.607

Link: CVE-2026-43129

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-06T14:00:05Z

Weaknesses