CVE-2024-50141

ACPI: PRM: Find EFI_MEMORY_RUNTIME block for PRM handler and context

State
Published
Severity
7.8 High
Published
Nov 7, 2024
Updated
Aug 5, 2026
Reserved
Oct 21, 2024

Read the record on cve.org

Description

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

ACPI: PRM: Find EFI_MEMORY_RUNTIME block for PRM handler and context

PRMT needs to find the correct type of block to translate the PA-VA mapping for EFI runtime services.

The issue arises because the PRMT is finding a block of type EFI_CONVENTIONAL_MEMORY, which is not appropriate for runtime services as described in Section 2.2.2 (Runtime Services) of the UEFI Specification [1]. Since the PRM handler is a type of runtime service, this causes an exception when the PRM handler is called.

[Firmware Bug]: Unable to handle paging request in EFI runtime service WARNING: CPU: 22 PID: 4330 at drivers/firmware/efi/runtime-wrappers.c:341 __efi_queue_work+0x11c/0x170 Call trace:

Let PRMT find a block with EFI_MEMORY_RUNTIME for PRM handler and PRM context.

If no suitable block is found, a warning message will be printed, but the procedure continues to manage the next PRM handler.

However, if the PRM handler is actually called without proper allocation, it would result in a failure during error handling.

By using the correct memory types for runtime services, ensure that the PRM handler and the context are properly mapped in the virtual address space during runtime, preventing the paging request error.

The issue is really that only memory that has been remapped for runtime by the firmware can be used by the PRM handler, and so the region needs to have the EFI_MEMORY_RUNTIME attribute.

[ rjw: Subject and changelog edits ]

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux
3.15.5 MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HCISA-ADP

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • cefc7ca46235f01d5233e3abd4b79452af01d9e9 to before 8df52929530839e878e6912e33348b54101e3250Affected
  • cefc7ca46235f01d5233e3abd4b79452af01d9e9 to before 8ce081ad842510f0e70fa6065a401660eac876d4Affected
  • cefc7ca46235f01d5233e3abd4b79452af01d9e9 to before 795b080d9aa127215a5baf088a22fa09341a0126Affected
  • cefc7ca46235f01d5233e3abd4b79452af01d9e9 to before 20e9fafb8bb6f545667d7916b0e81e68c0748810Affected
  • cefc7ca46235f01d5233e3abd4b79452af01d9e9 to before 088984c8d54c0053fc4ae606981291d741c5924bAffected
LinuxLinux
  • 5.14Affected
  • before 5.14Not affected
  • 5.15.171 through 5.15.*Not affected
  • 6.1.115 through 6.1.*Not affected
  • 6.6.59 through 6.6.*Not affected
  • 6.11.6 through 6.11.*Not affected
  • 6.12 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.