CVE-2022-50478
Severity CVSS v4.0:
Pending analysis
Type:
CWE-125
Out-of-bounds Read
Publication date:
04/10/2025
Last modified:
23/01/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
nilfs2: fix shift-out-of-bounds/overflow in nilfs_sb2_bad_offset()<br />
<br />
Patch series "nilfs2: fix UBSAN shift-out-of-bounds warnings on mount<br />
time".<br />
<br />
The first patch fixes a bug reported by syzbot, and the second one fixes<br />
the remaining bug of the same kind. Although they are triggered by the<br />
same super block data anomaly, I divided it into the above two because the<br />
details of the issues and how to fix it are different.<br />
<br />
Both are required to eliminate the shift-out-of-bounds issues at mount<br />
time.<br />
<br />
<br />
This patch (of 2):<br />
<br />
If the block size exponent information written in an on-disk superblock is<br />
corrupted, nilfs_sb2_bad_offset helper function can trigger<br />
shift-out-of-bounds warning followed by a kernel panic (if panic_on_warn<br />
is set):<br />
<br />
shift exponent 38983 is too large for 64-bit type &#39;unsigned long long&#39;<br />
Call Trace:<br />
<br />
__dump_stack lib/dump_stack.c:88 [inline]<br />
dump_stack_lvl+0x1b1/0x28e lib/dump_stack.c:106<br />
ubsan_epilogue lib/ubsan.c:151 [inline]<br />
__ubsan_handle_shift_out_of_bounds+0x33d/0x3b0 lib/ubsan.c:322<br />
nilfs_sb2_bad_offset fs/nilfs2/the_nilfs.c:449 [inline]<br />
nilfs_load_super_block+0xdf5/0xe00 fs/nilfs2/the_nilfs.c:523<br />
init_nilfs+0xb7/0x7d0 fs/nilfs2/the_nilfs.c:577<br />
nilfs_fill_super+0xb1/0x5d0 fs/nilfs2/super.c:1047<br />
nilfs_mount+0x613/0x9b0 fs/nilfs2/super.c:1317<br />
...<br />
<br />
In addition, since nilfs_sb2_bad_offset() performs multiplication without<br />
considering the upper bound, the computation may overflow if the disk<br />
layout parameters are not normal.<br />
<br />
This fixes these issues by inserting preliminary sanity checks for those<br />
parameters and by converting the comparison from one involving<br />
multiplication and left bit-shifting to one using division and right<br />
bit-shifting.
Impact
Base Score 3.x
7.10
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 2.6.30 (including) | 4.9.337 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.10 (including) | 4.14.303 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.15 (including) | 4.19.270 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (including) | 5.4.229 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.163 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.86 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.0.16 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.1 (including) | 6.1.2 (excluding) |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/1012ff77284e3bec0ec0a35a820b03ec43dec2cc
- https://git.kernel.org/stable/c/610a2a3d7d8be3537458a378ec69396a76c385b6
- https://git.kernel.org/stable/c/62d11ec205ef14d8acf172cfc9904fdbf200025a
- https://git.kernel.org/stable/c/6b0ea3df56cccd53398d0289f399f19d43136b2e
- https://git.kernel.org/stable/c/9b3ba54025357440d6c4414c670984f628c6f6bf
- https://git.kernel.org/stable/c/a6f89b10042baca218c8598d6db5a44c7e32625f
- https://git.kernel.org/stable/c/b47f5c579c8186f7f5ab5e4254e0734ea5b7bf7a
- https://git.kernel.org/stable/c/d464b035c0613856d012cf1704879d3ff3f057fb
- https://git.kernel.org/stable/c/d706485dffbbbf848e681edda29c7a46ac55698c



