CVE-2022-50159
Unknown Unknown - Not Provided
BaseFortify

Publication date: 2025-06-18

Last updated on: 2025-11-25

Assigner: kernel.org

Description
In the Linux kernel, the following vulnerability has been resolved: of: check previous kernel's ima-kexec-buffer against memory bounds Presently ima_get_kexec_buffer() doesn't check if the previous kernel's ima-kexec-buffer lies outside the addressable memory range. This can result in a kernel panic if the new kernel is booted with 'mem=X' arg and the ima-kexec-buffer was allocated beyond that range by the previous kernel. The panic is usually of the form below: $ sudo kexec --initrd initrd vmlinux --append='mem=16G' <snip> BUG: Unable to handle kernel data access on read at 0xc000c01fff7f0000 Faulting instruction address: 0xc000000000837974 Oops: Kernel access of bad area, sig: 11 [#1] <snip> NIP [c000000000837974] ima_restore_measurement_list+0x94/0x6c0 LR [c00000000083b55c] ima_load_kexec_buffer+0xac/0x160 Call Trace: [c00000000371fa80] [c00000000083b55c] ima_load_kexec_buffer+0xac/0x160 [c00000000371fb00] [c0000000020512c4] ima_init+0x80/0x108 [c00000000371fb70] [c0000000020514dc] init_ima+0x4c/0x120 [c00000000371fbf0] [c000000000012240] do_one_initcall+0x60/0x2c0 [c00000000371fcc0] [c000000002004ad0] kernel_init_freeable+0x344/0x3ec [c00000000371fda0] [c0000000000128a4] kernel_init+0x34/0x1b0 [c00000000371fe10] [c00000000000ce64] ret_from_kernel_thread+0x5c/0x64 Instruction dump: f92100b8 f92100c0 90e10090 910100a0 4182050c 282a0017 3bc00000 40810330 7c0802a6 fb610198 7c9b2378 f80101d0 <a1240000> 2c090001 40820614 e9240010 ---[ end trace 0000000000000000 ]--- Fix this issue by checking returned PFN range of previous kernel's ima-kexec-buffer with page_is_ram() to ensure correct memory bounds.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2025-06-18
Last Modified
2025-11-25
Generated
2026-05-07
AI Q&A
2025-06-18
EPSS Evaluated
2026-05-05
NVD
Affected Vendors & Products
Showing 3 associated CPEs
Vendor Product Version / Range
linux linux_kernel From 5.15.160 (inc) to 5.16 (inc)
linux linux_kernel From 5.15.160 (inc) to 5.16 (inc)
linux linux_kernel From 5.15.160 (inc) to 5.16 (inc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-NVD-CWE-noinfo
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

This vulnerability occurs in the Linux kernel's handling of the ima-kexec-buffer from a previous kernel during a kexec operation. Specifically, the function ima_get_kexec_buffer() does not verify whether the previous kernel's ima-kexec-buffer lies within the valid addressable memory range. If the new kernel is booted with a memory limit argument (mem=X) and the previous kernel allocated the ima-kexec-buffer beyond this range, it can cause the kernel to panic due to accessing invalid memory. The fix involves checking the buffer's page frame number range with page_is_ram() to ensure it is within correct memory bounds.


How can this vulnerability impact me? :

This vulnerability can cause a kernel panic when booting a new kernel using kexec if the previous kernel's ima-kexec-buffer is outside the allowed memory range. A kernel panic leads to a system crash, causing downtime and potential data loss or service interruption.


How can this vulnerability be detected on my network or system? Can you suggest some commands?

This vulnerability can be detected by observing kernel panic messages related to the ima-kexec-buffer when booting a new kernel with the 'mem=X' argument. Specifically, look for kernel panic logs containing messages like 'BUG: Unable to handle kernel data access on read' and traces involving ima_restore_measurement_list and ima_load_kexec_buffer. A command to reproduce or detect the issue is: sudo kexec --initrd initrd vmlinux --append='mem=16G'. Monitoring system logs (e.g., dmesg or journalctl) for such panic messages after kexec operations can help detect the vulnerability.


What immediate steps should I take to mitigate this vulnerability?

To mitigate this vulnerability, update the Linux kernel to a version where the issue is fixed. The fix involves checking the returned PFN range of the previous kernel's ima-kexec-buffer with page_is_ram() to ensure it lies within correct memory bounds, preventing kernel panic. Avoid booting new kernels with 'mem=X' arguments that could trigger the issue until the patch is applied.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart