Vulnerability Details CVE-2024-57945
In the Linux kernel, the following vulnerability has been resolved:
riscv: mm: Fix the out of bound issue of vmemmap address
In sparse vmemmap model, the virtual address of vmemmap is calculated as:
((struct page *)VMEMMAP_START - (phys_ram_base >> PAGE_SHIFT)).
And the struct page's va can be calculated with an offset:
(vmemmap + (pfn)).
However, when initializing struct pages, kernel actually starts from the
first page from the same section that phys_ram_base belongs to. If the
first page's physical address is not (phys_ram_base >> PAGE_SHIFT), then
we get an va below VMEMMAP_START when calculating va for it's struct page.
For example, if phys_ram_base starts from 0x82000000 with pfn 0x82000, the
first page in the same section is actually pfn 0x80000. During
init_unavailable_range(), we will initialize struct page for pfn 0x80000
with virtual address ((struct page *)VMEMMAP_START - 0x2000), which is
below VMEMMAP_START as well as PCI_IO_END.
This commit fixes this bug by introducing a new variable
'vmemmap_start_pfn' which is aligned with memory section size and using
it to calculate vmemmap address instead of phys_ram_base.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.0
EPSS Ranking 11.1%
CVSS Severity
CVSS v3 Score 7.1
Products affected by CVE-2024-57945
-
cpe:2.3:o:linux:linux_kernel:5.10.212
-
cpe:2.3:o:linux:linux_kernel:5.10.213
-
cpe:2.3:o:linux:linux_kernel:5.10.214
-
cpe:2.3:o:linux:linux_kernel:5.10.215
-
cpe:2.3:o:linux:linux_kernel:5.10.216
-
cpe:2.3:o:linux:linux_kernel:5.10.217
-
cpe:2.3:o:linux:linux_kernel:5.10.218
-
cpe:2.3:o:linux:linux_kernel:5.10.219
-
cpe:2.3:o:linux:linux_kernel:5.10.220
-
cpe:2.3:o:linux:linux_kernel:5.10.221
-
cpe:2.3:o:linux:linux_kernel:5.10.222
-
cpe:2.3:o:linux:linux_kernel:5.10.223
-
cpe:2.3:o:linux:linux_kernel:5.10.224
-
cpe:2.3:o:linux:linux_kernel:5.10.225
-
cpe:2.3:o:linux:linux_kernel:5.10.226
-
cpe:2.3:o:linux:linux_kernel:5.10.227
-
cpe:2.3:o:linux:linux_kernel:5.10.228
-
cpe:2.3:o:linux:linux_kernel:5.10.229
-
cpe:2.3:o:linux:linux_kernel:5.10.230
-
cpe:2.3:o:linux:linux_kernel:5.10.231
-
cpe:2.3:o:linux:linux_kernel:5.10.232
-
cpe:2.3:o:linux:linux_kernel:5.10.233
-
cpe:2.3:o:linux:linux_kernel:5.10.234
-
cpe:2.3:o:linux:linux_kernel:5.10.235
-
cpe:2.3:o:linux:linux_kernel:5.10.236
-
cpe:2.3:o:linux:linux_kernel:5.10.237
-
cpe:2.3:o:linux:linux_kernel:5.10.238
-
cpe:2.3:o:linux:linux_kernel:5.10.239
-
cpe:2.3:o:linux:linux_kernel:5.10.240
-
cpe:2.3:o:linux:linux_kernel:5.10.241
-
cpe:2.3:o:linux:linux_kernel:5.10.242
-
cpe:2.3:o:linux:linux_kernel:5.10.243
-
cpe:2.3:o:linux:linux_kernel:5.10.244
-
cpe:2.3:o:linux:linux_kernel:5.10.245
-
cpe:2.3:o:linux:linux_kernel:5.10.246
-
cpe:2.3:o:linux:linux_kernel:5.15.151
-
cpe:2.3:o:linux:linux_kernel:5.15.152
-
cpe:2.3:o:linux:linux_kernel:5.15.153
-
cpe:2.3:o:linux:linux_kernel:5.15.154
-
cpe:2.3:o:linux:linux_kernel:5.15.155
-
cpe:2.3:o:linux:linux_kernel:5.15.156
-
cpe:2.3:o:linux:linux_kernel:5.15.157
-
cpe:2.3:o:linux:linux_kernel:5.15.158
-
cpe:2.3:o:linux:linux_kernel:5.15.159
-
cpe:2.3:o:linux:linux_kernel:5.15.160
-
cpe:2.3:o:linux:linux_kernel:5.15.161
-
cpe:2.3:o:linux:linux_kernel:5.15.162
-
cpe:2.3:o:linux:linux_kernel:5.15.163
-
cpe:2.3:o:linux:linux_kernel:5.15.164
-
cpe:2.3:o:linux:linux_kernel:5.15.165
-
cpe:2.3:o:linux:linux_kernel:5.15.166
-
cpe:2.3:o:linux:linux_kernel:5.15.167
-
cpe:2.3:o:linux:linux_kernel:5.15.168
-
cpe:2.3:o:linux:linux_kernel:5.15.169
-
cpe:2.3:o:linux:linux_kernel:5.15.170
-
cpe:2.3:o:linux:linux_kernel:5.15.171
-
cpe:2.3:o:linux:linux_kernel:5.15.172
-
cpe:2.3:o:linux:linux_kernel:5.15.173
-
cpe:2.3:o:linux:linux_kernel:5.15.174
-
cpe:2.3:o:linux:linux_kernel:5.15.175
-
cpe:2.3:o:linux:linux_kernel:5.15.176
-
cpe:2.3:o:linux:linux_kernel:5.15.177
-
cpe:2.3:o:linux:linux_kernel:5.15.178
-
cpe:2.3:o:linux:linux_kernel:5.15.179
-
cpe:2.3:o:linux:linux_kernel:5.15.180
-
cpe:2.3:o:linux:linux_kernel:5.15.181
-
cpe:2.3:o:linux:linux_kernel:5.15.182
-
cpe:2.3:o:linux:linux_kernel:5.15.183
-
cpe:2.3:o:linux:linux_kernel:5.15.184
-
cpe:2.3:o:linux:linux_kernel:5.15.185
-
cpe:2.3:o:linux:linux_kernel:5.15.186
-
cpe:2.3:o:linux:linux_kernel:5.15.187
-
cpe:2.3:o:linux:linux_kernel:5.15.188
-
cpe:2.3:o:linux:linux_kernel:5.15.189
-
cpe:2.3:o:linux:linux_kernel:5.15.190
-
cpe:2.3:o:linux:linux_kernel:5.15.191
-
cpe:2.3:o:linux:linux_kernel:5.15.192
-
cpe:2.3:o:linux:linux_kernel:5.15.193
-
cpe:2.3:o:linux:linux_kernel:5.15.194
-
cpe:2.3:o:linux:linux_kernel:5.15.195
-
cpe:2.3:o:linux:linux_kernel:5.15.196
-
cpe:2.3:o:linux:linux_kernel:6.1.100
-
cpe:2.3:o:linux:linux_kernel:6.1.101
-
cpe:2.3:o:linux:linux_kernel:6.1.102
-
cpe:2.3:o:linux:linux_kernel:6.1.103
-
cpe:2.3:o:linux:linux_kernel:6.1.104
-
cpe:2.3:o:linux:linux_kernel:6.1.105
-
cpe:2.3:o:linux:linux_kernel:6.1.106
-
cpe:2.3:o:linux:linux_kernel:6.1.107
-
cpe:2.3:o:linux:linux_kernel:6.1.108
-
cpe:2.3:o:linux:linux_kernel:6.1.109
-
cpe:2.3:o:linux:linux_kernel:6.1.110
-
cpe:2.3:o:linux:linux_kernel:6.1.111
-
cpe:2.3:o:linux:linux_kernel:6.1.112
-
cpe:2.3:o:linux:linux_kernel:6.1.113
-
cpe:2.3:o:linux:linux_kernel:6.1.114
-
cpe:2.3:o:linux:linux_kernel:6.1.115
-
cpe:2.3:o:linux:linux_kernel:6.1.116
-
cpe:2.3:o:linux:linux_kernel:6.1.117
-
cpe:2.3:o:linux:linux_kernel:6.1.118
-
cpe:2.3:o:linux:linux_kernel:6.1.119
-
cpe:2.3:o:linux:linux_kernel:6.1.120
-
cpe:2.3:o:linux:linux_kernel:6.1.121
-
cpe:2.3:o:linux:linux_kernel:6.1.122
-
cpe:2.3:o:linux:linux_kernel:6.1.123
-
cpe:2.3:o:linux:linux_kernel:6.1.124
-
cpe:2.3:o:linux:linux_kernel:6.1.125
-
cpe:2.3:o:linux:linux_kernel:6.1.126
-
cpe:2.3:o:linux:linux_kernel:6.1.127
-
cpe:2.3:o:linux:linux_kernel:6.1.128
-
cpe:2.3:o:linux:linux_kernel:6.1.129
-
cpe:2.3:o:linux:linux_kernel:6.1.130
-
cpe:2.3:o:linux:linux_kernel:6.1.131
-
cpe:2.3:o:linux:linux_kernel:6.1.132
-
cpe:2.3:o:linux:linux_kernel:6.1.133
-
cpe:2.3:o:linux:linux_kernel:6.1.134
-
cpe:2.3:o:linux:linux_kernel:6.1.135
-
cpe:2.3:o:linux:linux_kernel:6.1.136
-
cpe:2.3:o:linux:linux_kernel:6.1.137
-
cpe:2.3:o:linux:linux_kernel:6.1.138
-
cpe:2.3:o:linux:linux_kernel:6.1.139
-
cpe:2.3:o:linux:linux_kernel:6.1.81
-
cpe:2.3:o:linux:linux_kernel:6.1.82
-
cpe:2.3:o:linux:linux_kernel:6.1.83
-
cpe:2.3:o:linux:linux_kernel:6.1.84
-
cpe:2.3:o:linux:linux_kernel:6.1.85
-
cpe:2.3:o:linux:linux_kernel:6.1.86
-
cpe:2.3:o:linux:linux_kernel:6.1.87
-
cpe:2.3:o:linux:linux_kernel:6.1.88
-
cpe:2.3:o:linux:linux_kernel:6.1.89
-
cpe:2.3:o:linux:linux_kernel:6.1.90
-
cpe:2.3:o:linux:linux_kernel:6.1.91
-
cpe:2.3:o:linux:linux_kernel:6.1.92
-
cpe:2.3:o:linux:linux_kernel:6.1.93
-
cpe:2.3:o:linux:linux_kernel:6.1.94
-
cpe:2.3:o:linux:linux_kernel:6.1.95
-
cpe:2.3:o:linux:linux_kernel:6.1.96
-
cpe:2.3:o:linux:linux_kernel:6.1.97
-
cpe:2.3:o:linux:linux_kernel:6.1.98
-
cpe:2.3:o:linux:linux_kernel:6.1.99
-
cpe:2.3:o:linux:linux_kernel:6.10
-
cpe:2.3:o:linux:linux_kernel:6.10.0
-
cpe:2.3:o:linux:linux_kernel:6.10.1
-
cpe:2.3:o:linux:linux_kernel:6.10.10
-
cpe:2.3:o:linux:linux_kernel:6.10.11
-
cpe:2.3:o:linux:linux_kernel:6.10.12
-
cpe:2.3:o:linux:linux_kernel:6.10.13
-
cpe:2.3:o:linux:linux_kernel:6.10.14
-
cpe:2.3:o:linux:linux_kernel:6.10.2
-
cpe:2.3:o:linux:linux_kernel:6.10.3
-
cpe:2.3:o:linux:linux_kernel:6.10.4
-
cpe:2.3:o:linux:linux_kernel:6.10.5
-
cpe:2.3:o:linux:linux_kernel:6.10.6
-
cpe:2.3:o:linux:linux_kernel:6.10.7
-
cpe:2.3:o:linux:linux_kernel:6.10.8
-
cpe:2.3:o:linux:linux_kernel:6.10.9
-
cpe:2.3:o:linux:linux_kernel:6.11
-
cpe:2.3:o:linux:linux_kernel:6.11.1
-
cpe:2.3:o:linux:linux_kernel:6.11.10
-
cpe:2.3:o:linux:linux_kernel:6.11.11
-
cpe:2.3:o:linux:linux_kernel:6.11.2
-
cpe:2.3:o:linux:linux_kernel:6.11.3
-
cpe:2.3:o:linux:linux_kernel:6.11.4
-
cpe:2.3:o:linux:linux_kernel:6.11.5
-
cpe:2.3:o:linux:linux_kernel:6.11.6
-
cpe:2.3:o:linux:linux_kernel:6.11.7
-
cpe:2.3:o:linux:linux_kernel:6.11.8
-
cpe:2.3:o:linux:linux_kernel:6.11.9
-
cpe:2.3:o:linux:linux_kernel:6.12
-
cpe:2.3:o:linux:linux_kernel:6.12.1
-
cpe:2.3:o:linux:linux_kernel:6.12.2
-
cpe:2.3:o:linux:linux_kernel:6.12.3
-
cpe:2.3:o:linux:linux_kernel:6.12.4
-
cpe:2.3:o:linux:linux_kernel:6.12.5
-
cpe:2.3:o:linux:linux_kernel:6.12.6
-
cpe:2.3:o:linux:linux_kernel:6.12.7
-
cpe:2.3:o:linux:linux_kernel:6.12.8
-
cpe:2.3:o:linux:linux_kernel:6.12.9
-
cpe:2.3:o:linux:linux_kernel:6.13
-
cpe:2.3:o:linux:linux_kernel:6.6.21
-
cpe:2.3:o:linux:linux_kernel:6.6.22
-
cpe:2.3:o:linux:linux_kernel:6.6.23
-
cpe:2.3:o:linux:linux_kernel:6.6.24
-
cpe:2.3:o:linux:linux_kernel:6.6.25
-
cpe:2.3:o:linux:linux_kernel:6.6.26
-
cpe:2.3:o:linux:linux_kernel:6.6.27
-
cpe:2.3:o:linux:linux_kernel:6.6.28
-
cpe:2.3:o:linux:linux_kernel:6.6.29
-
cpe:2.3:o:linux:linux_kernel:6.6.30
-
cpe:2.3:o:linux:linux_kernel:6.6.31
-
cpe:2.3:o:linux:linux_kernel:6.6.32
-
cpe:2.3:o:linux:linux_kernel:6.6.33
-
cpe:2.3:o:linux:linux_kernel:6.6.34
-
cpe:2.3:o:linux:linux_kernel:6.6.35
-
cpe:2.3:o:linux:linux_kernel:6.6.36
-
cpe:2.3:o:linux:linux_kernel:6.6.37
-
cpe:2.3:o:linux:linux_kernel:6.6.38
-
cpe:2.3:o:linux:linux_kernel:6.6.39
-
cpe:2.3:o:linux:linux_kernel:6.6.40
-
cpe:2.3:o:linux:linux_kernel:6.6.41
-
cpe:2.3:o:linux:linux_kernel:6.6.42
-
cpe:2.3:o:linux:linux_kernel:6.6.43
-
cpe:2.3:o:linux:linux_kernel:6.6.44
-
cpe:2.3:o:linux:linux_kernel:6.6.45
-
cpe:2.3:o:linux:linux_kernel:6.6.46
-
cpe:2.3:o:linux:linux_kernel:6.6.47
-
cpe:2.3:o:linux:linux_kernel:6.6.48
-
cpe:2.3:o:linux:linux_kernel:6.6.49
-
cpe:2.3:o:linux:linux_kernel:6.6.50
-
cpe:2.3:o:linux:linux_kernel:6.6.51
-
cpe:2.3:o:linux:linux_kernel:6.6.52
-
cpe:2.3:o:linux:linux_kernel:6.6.53
-
cpe:2.3:o:linux:linux_kernel:6.6.54
-
cpe:2.3:o:linux:linux_kernel:6.6.55
-
cpe:2.3:o:linux:linux_kernel:6.6.56
-
cpe:2.3:o:linux:linux_kernel:6.6.57
-
cpe:2.3:o:linux:linux_kernel:6.6.58
-
cpe:2.3:o:linux:linux_kernel:6.6.59
-
cpe:2.3:o:linux:linux_kernel:6.6.60
-
cpe:2.3:o:linux:linux_kernel:6.6.61
-
cpe:2.3:o:linux:linux_kernel:6.6.62
-
cpe:2.3:o:linux:linux_kernel:6.6.63
-
cpe:2.3:o:linux:linux_kernel:6.6.64
-
cpe:2.3:o:linux:linux_kernel:6.6.65
-
cpe:2.3:o:linux:linux_kernel:6.6.66
-
cpe:2.3:o:linux:linux_kernel:6.6.67
-
cpe:2.3:o:linux:linux_kernel:6.6.68
-
cpe:2.3:o:linux:linux_kernel:6.6.69
-
cpe:2.3:o:linux:linux_kernel:6.6.70
-
cpe:2.3:o:linux:linux_kernel:6.6.71
-
cpe:2.3:o:linux:linux_kernel:6.7.10
-
cpe:2.3:o:linux:linux_kernel:6.7.11
-
cpe:2.3:o:linux:linux_kernel:6.7.12
-
cpe:2.3:o:linux:linux_kernel:6.7.9
-
cpe:2.3:o:linux:linux_kernel:6.8
-
cpe:2.3:o:linux:linux_kernel:6.8.1
-
cpe:2.3:o:linux:linux_kernel:6.8.10
-
cpe:2.3:o:linux:linux_kernel:6.8.11
-
cpe:2.3:o:linux:linux_kernel:6.8.12
-
cpe:2.3:o:linux:linux_kernel:6.8.2
-
cpe:2.3:o:linux:linux_kernel:6.8.3
-
cpe:2.3:o:linux:linux_kernel:6.8.4
-
cpe:2.3:o:linux:linux_kernel:6.8.5
-
cpe:2.3:o:linux:linux_kernel:6.8.6
-
cpe:2.3:o:linux:linux_kernel:6.8.7
-
cpe:2.3:o:linux:linux_kernel:6.8.8
-
cpe:2.3:o:linux:linux_kernel:6.8.9
-
cpe:2.3:o:linux:linux_kernel:6.9
-
cpe:2.3:o:linux:linux_kernel:6.9.1
-
cpe:2.3:o:linux:linux_kernel:6.9.10
-
cpe:2.3:o:linux:linux_kernel:6.9.11
-
cpe:2.3:o:linux:linux_kernel:6.9.12
-
cpe:2.3:o:linux:linux_kernel:6.9.2
-
cpe:2.3:o:linux:linux_kernel:6.9.3
-
cpe:2.3:o:linux:linux_kernel:6.9.4
-
cpe:2.3:o:linux:linux_kernel:6.9.5
-
cpe:2.3:o:linux:linux_kernel:6.9.6
-
cpe:2.3:o:linux:linux_kernel:6.9.7
-
cpe:2.3:o:linux:linux_kernel:6.9.8
-
cpe:2.3:o:linux:linux_kernel:6.9.9