Vulnerability Details CVE-2021-47228
In the Linux kernel, the following vulnerability has been resolved:
x86/ioremap: Map EFI-reserved memory as encrypted for SEV
Some drivers require memory that is marked as EFI boot services
data. In order for this memory to not be re-used by the kernel
after ExitBootServices(), efi_mem_reserve() is used to preserve it
by inserting a new EFI memory descriptor and marking it with the
EFI_MEMORY_RUNTIME attribute.
Under SEV, memory marked with the EFI_MEMORY_RUNTIME attribute needs to
be mapped encrypted by Linux, otherwise the kernel might crash at boot
like below:
EFI Variables Facility v0.08 2004-May-17
general protection fault, probably for non-canonical address 0x3597688770a868b2: 0000 [#1] SMP NOPTI
CPU: 13 PID: 1 Comm: swapper/0 Not tainted 5.12.4-2-default #1 openSUSE Tumbleweed
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
RIP: 0010:efi_mokvar_entry_next
[...]
Call Trace:
efi_mokvar_sysfs_init
? efi_mokvar_table_init
do_one_initcall
? __kmalloc
kernel_init_freeable
? rest_init
kernel_init
ret_from_fork
Expand the __ioremap_check_other() function to additionally check for
this other type of boot data reserved at runtime and indicate that it
should be mapped encrypted for an SEV guest.
[ bp: Massage commit message. ]
Exploit prediction scoring system (EPSS) score
EPSS Score 0.0
EPSS Ranking 0.8%
CVSS Severity
CVSS v3 Score 6.2
Products affected by CVE-2021-47228
-
cpe:2.3:o:linux:linux_kernel:5.10
-
cpe:2.3:o:linux:linux_kernel:5.10.0
-
cpe:2.3:o:linux:linux_kernel:5.10.1
-
cpe:2.3:o:linux:linux_kernel:5.10.10
-
cpe:2.3:o:linux:linux_kernel:5.10.11
-
cpe:2.3:o:linux:linux_kernel:5.10.12
-
cpe:2.3:o:linux:linux_kernel:5.10.13
-
cpe:2.3:o:linux:linux_kernel:5.10.14
-
cpe:2.3:o:linux:linux_kernel:5.10.15
-
cpe:2.3:o:linux:linux_kernel:5.10.16
-
cpe:2.3:o:linux:linux_kernel:5.10.17
-
cpe:2.3:o:linux:linux_kernel:5.10.18
-
cpe:2.3:o:linux:linux_kernel:5.10.19
-
cpe:2.3:o:linux:linux_kernel:5.10.2
-
cpe:2.3:o:linux:linux_kernel:5.10.20
-
cpe:2.3:o:linux:linux_kernel:5.10.21
-
cpe:2.3:o:linux:linux_kernel:5.10.22
-
cpe:2.3:o:linux:linux_kernel:5.10.23
-
cpe:2.3:o:linux:linux_kernel:5.10.24
-
cpe:2.3:o:linux:linux_kernel:5.10.25
-
cpe:2.3:o:linux:linux_kernel:5.10.26
-
cpe:2.3:o:linux:linux_kernel:5.10.27
-
cpe:2.3:o:linux:linux_kernel:5.10.28
-
cpe:2.3:o:linux:linux_kernel:5.10.29
-
cpe:2.3:o:linux:linux_kernel:5.10.3
-
cpe:2.3:o:linux:linux_kernel:5.10.30
-
cpe:2.3:o:linux:linux_kernel:5.10.31
-
cpe:2.3:o:linux:linux_kernel:5.10.32
-
cpe:2.3:o:linux:linux_kernel:5.10.33
-
cpe:2.3:o:linux:linux_kernel:5.10.34
-
cpe:2.3:o:linux:linux_kernel:5.10.35
-
cpe:2.3:o:linux:linux_kernel:5.10.36
-
cpe:2.3:o:linux:linux_kernel:5.10.37
-
cpe:2.3:o:linux:linux_kernel:5.10.38
-
cpe:2.3:o:linux:linux_kernel:5.10.39
-
cpe:2.3:o:linux:linux_kernel:5.10.4
-
cpe:2.3:o:linux:linux_kernel:5.10.40
-
cpe:2.3:o:linux:linux_kernel:5.10.41
-
cpe:2.3:o:linux:linux_kernel:5.10.42
-
cpe:2.3:o:linux:linux_kernel:5.10.43
-
cpe:2.3:o:linux:linux_kernel:5.10.44
-
cpe:2.3:o:linux:linux_kernel:5.10.45
-
cpe:2.3:o:linux:linux_kernel:5.10.5
-
cpe:2.3:o:linux:linux_kernel:5.10.6
-
cpe:2.3:o:linux:linux_kernel:5.10.7
-
cpe:2.3:o:linux:linux_kernel:5.10.8
-
cpe:2.3:o:linux:linux_kernel:5.10.9
-
cpe:2.3:o:linux:linux_kernel:5.11
-
cpe:2.3:o:linux:linux_kernel:5.11.1
-
cpe:2.3:o:linux:linux_kernel:5.11.10
-
cpe:2.3:o:linux:linux_kernel:5.11.11
-
cpe:2.3:o:linux:linux_kernel:5.11.12
-
cpe:2.3:o:linux:linux_kernel:5.11.13
-
cpe:2.3:o:linux:linux_kernel:5.11.14
-
cpe:2.3:o:linux:linux_kernel:5.11.15
-
cpe:2.3:o:linux:linux_kernel:5.11.16
-
cpe:2.3:o:linux:linux_kernel:5.11.17
-
cpe:2.3:o:linux:linux_kernel:5.11.18
-
cpe:2.3:o:linux:linux_kernel:5.11.19
-
cpe:2.3:o:linux:linux_kernel:5.11.2
-
cpe:2.3:o:linux:linux_kernel:5.11.20
-
cpe:2.3:o:linux:linux_kernel:5.11.21
-
cpe:2.3:o:linux:linux_kernel:5.11.22
-
cpe:2.3:o:linux:linux_kernel:5.11.3
-
cpe:2.3:o:linux:linux_kernel:5.11.4
-
cpe:2.3:o:linux:linux_kernel:5.11.5
-
cpe:2.3:o:linux:linux_kernel:5.11.6
-
cpe:2.3:o:linux:linux_kernel:5.11.7
-
cpe:2.3:o:linux:linux_kernel:5.11.8
-
cpe:2.3:o:linux:linux_kernel:5.11.9
-
cpe:2.3:o:linux:linux_kernel:5.12
-
cpe:2.3:o:linux:linux_kernel:5.12.1
-
cpe:2.3:o:linux:linux_kernel:5.12.10
-
cpe:2.3:o:linux:linux_kernel:5.12.11
-
cpe:2.3:o:linux:linux_kernel:5.12.12
-
cpe:2.3:o:linux:linux_kernel:5.12.2
-
cpe:2.3:o:linux:linux_kernel:5.12.3
-
cpe:2.3:o:linux:linux_kernel:5.12.4
-
cpe:2.3:o:linux:linux_kernel:5.12.5
-
cpe:2.3:o:linux:linux_kernel:5.12.6
-
cpe:2.3:o:linux:linux_kernel:5.12.7
-
cpe:2.3:o:linux:linux_kernel:5.12.8
-
cpe:2.3:o:linux:linux_kernel:5.12.9
-
cpe:2.3:o:linux:linux_kernel:5.13