Vulnerability Details CVE-2021-47554
In the Linux kernel, the following vulnerability has been resolved:
vdpa_sim: avoid putting an uninitialized iova_domain
The system will crash if we put an uninitialized iova_domain, this
could happen when an error occurs before initializing the iova_domain
in vdpasim_create().
BUG: kernel NULL pointer dereference, address: 0000000000000000
...
RIP: 0010:__cpuhp_state_remove_instance+0x96/0x1c0
...
Call Trace:
<TASK>
put_iova_domain+0x29/0x220
vdpasim_free+0xd1/0x120 [vdpa_sim]
vdpa_release_dev+0x21/0x40 [vdpa]
device_release+0x33/0x90
kobject_release+0x63/0x160
vdpasim_create+0x127/0x2a0 [vdpa_sim]
vdpasim_net_dev_add+0x7d/0xfe [vdpa_sim_net]
vdpa_nl_cmd_dev_add_set_doit+0xe1/0x1a0 [vdpa]
genl_family_rcv_msg_doit+0x112/0x140
genl_rcv_msg+0xdf/0x1d0
...
So we must make sure the iova_domain is already initialized before
put it.
In addition, we may get the following warning in this case:
WARNING: ... drivers/iommu/iova.c:344 iova_cache_put+0x58/0x70
So we must make sure the iova_cache_put() is invoked only if the
iova_cache_get() is already invoked. Let's fix it together.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.0
EPSS Ranking 0.8%
CVSS Severity
CVSS v3 Score 5.5
Products affected by CVE-2021-47554
-
cpe:2.3:o:linux:linux_kernel:5.13
-
cpe:2.3:o:linux:linux_kernel:5.13.0-52
-
cpe:2.3:o:linux:linux_kernel:5.13.1
-
cpe:2.3:o:linux:linux_kernel:5.13.10
-
cpe:2.3:o:linux:linux_kernel:5.13.11
-
cpe:2.3:o:linux:linux_kernel:5.13.12
-
cpe:2.3:o:linux:linux_kernel:5.13.13
-
cpe:2.3:o:linux:linux_kernel:5.13.14
-
cpe:2.3:o:linux:linux_kernel:5.13.15
-
cpe:2.3:o:linux:linux_kernel:5.13.16
-
cpe:2.3:o:linux:linux_kernel:5.13.17
-
cpe:2.3:o:linux:linux_kernel:5.13.18
-
cpe:2.3:o:linux:linux_kernel:5.13.19
-
cpe:2.3:o:linux:linux_kernel:5.13.2
-
cpe:2.3:o:linux:linux_kernel:5.13.3
-
cpe:2.3:o:linux:linux_kernel:5.13.4
-
cpe:2.3:o:linux:linux_kernel:5.13.5
-
cpe:2.3:o:linux:linux_kernel:5.13.6
-
cpe:2.3:o:linux:linux_kernel:5.13.7
-
cpe:2.3:o:linux:linux_kernel:5.13.8
-
cpe:2.3:o:linux:linux_kernel:5.13.9
-
cpe:2.3:o:linux:linux_kernel:5.14
-
cpe:2.3:o:linux:linux_kernel:5.14.1
-
cpe:2.3:o:linux:linux_kernel:5.14.10
-
cpe:2.3:o:linux:linux_kernel:5.14.11
-
cpe:2.3:o:linux:linux_kernel:5.14.12
-
cpe:2.3:o:linux:linux_kernel:5.14.13
-
cpe:2.3:o:linux:linux_kernel:5.14.14
-
cpe:2.3:o:linux:linux_kernel:5.14.15
-
cpe:2.3:o:linux:linux_kernel:5.14.16
-
cpe:2.3:o:linux:linux_kernel:5.14.17
-
cpe:2.3:o:linux:linux_kernel:5.14.18
-
cpe:2.3:o:linux:linux_kernel:5.14.19
-
cpe:2.3:o:linux:linux_kernel:5.14.2
-
cpe:2.3:o:linux:linux_kernel:5.14.20
-
cpe:2.3:o:linux:linux_kernel:5.14.21
-
cpe:2.3:o:linux:linux_kernel:5.14.3
-
cpe:2.3:o:linux:linux_kernel:5.14.4
-
cpe:2.3:o:linux:linux_kernel:5.14.5
-
cpe:2.3:o:linux:linux_kernel:5.14.6
-
cpe:2.3:o:linux:linux_kernel:5.14.7
-
cpe:2.3:o:linux:linux_kernel:5.14.8
-
cpe:2.3:o:linux:linux_kernel:5.14.9
-
cpe:2.3:o:linux:linux_kernel:5.15
-
cpe:2.3:o:linux:linux_kernel:5.15.0
-
cpe:2.3:o:linux:linux_kernel:5.15.0-58
-
cpe:2.3:o:linux:linux_kernel:5.15.1
-
cpe:2.3:o:linux:linux_kernel:5.15.2
-
cpe:2.3:o:linux:linux_kernel:5.15.3
-
cpe:2.3:o:linux:linux_kernel:5.15.4
-
cpe:2.3:o:linux:linux_kernel:5.15.5
-
cpe:2.3:o:linux:linux_kernel:5.16