CVE-2024-50141
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
07/11/2024
Last modified:
08/11/2024
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
ACPI: PRM: Find EFI_MEMORY_RUNTIME block for PRM handler and context<br />
<br />
PRMT needs to find the correct type of block to translate the PA-VA<br />
mapping for EFI runtime services.<br />
<br />
The issue arises because the PRMT is finding a block of type<br />
EFI_CONVENTIONAL_MEMORY, which is not appropriate for runtime services<br />
as described in Section 2.2.2 (Runtime Services) of the UEFI<br />
Specification [1]. Since the PRM handler is a type of runtime service,<br />
this causes an exception when the PRM handler is called.<br />
<br />
[Firmware Bug]: Unable to handle paging request in EFI runtime service<br />
WARNING: CPU: 22 PID: 4330 at drivers/firmware/efi/runtime-wrappers.c:341<br />
__efi_queue_work+0x11c/0x170<br />
Call trace:<br />
<br />
Let PRMT find a block with EFI_MEMORY_RUNTIME for PRM handler and PRM<br />
context.<br />
<br />
If no suitable block is found, a warning message will be printed, but<br />
the procedure continues to manage the next PRM handler.<br />
<br />
However, if the PRM handler is actually called without proper allocation,<br />
it would result in a failure during error handling.<br />
<br />
By using the correct memory types for runtime services, ensure that the<br />
PRM handler and the context are properly mapped in the virtual address<br />
space during runtime, preventing the paging request error.<br />
<br />
The issue is really that only memory that has been remapped for runtime<br />
by the firmware can be used by the PRM handler, and so the region needs<br />
to have the EFI_MEMORY_RUNTIME attribute.<br />
<br />
[ rjw: Subject and changelog edits ]
Impact
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/088984c8d54c0053fc4ae606981291d741c5924b
- https://git.kernel.org/stable/c/20e9fafb8bb6f545667d7916b0e81e68c0748810
- https://git.kernel.org/stable/c/795b080d9aa127215a5baf088a22fa09341a0126
- https://git.kernel.org/stable/c/8ce081ad842510f0e70fa6065a401660eac876d4
- https://git.kernel.org/stable/c/8df52929530839e878e6912e33348b54101e3250