CVE-2024-46744
Severity CVSS v4.0:
Pending analysis
Type:
CWE-59
Link Following
Publication date:
18/09/2024
Last modified:
30/09/2024
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
Squashfs: sanity check symbolic link size<br />
<br />
Syzkiller reports a "KMSAN: uninit-value in pick_link" bug.<br />
<br />
This is caused by an uninitialised page, which is ultimately caused<br />
by a corrupted symbolic link size read from disk.<br />
<br />
The reason why the corrupted symlink size causes an uninitialised<br />
page is due to the following sequence of events:<br />
<br />
1. squashfs_read_inode() is called to read the symbolic<br />
link from disk. This assigns the corrupted value<br />
3875536935 to inode->i_size.<br />
<br />
2. Later squashfs_symlink_read_folio() is called, which assigns<br />
this corrupted value to the length variable, which being a<br />
signed int, overflows producing a negative number.<br />
<br />
3. The following loop that fills in the page contents checks that<br />
the copied bytes is less than length, which being negative means<br />
the loop is skipped, producing an uninitialised page.<br />
<br />
This patch adds a sanity check which checks that the symbolic<br />
link size is not larger than expected.<br />
<br />
--<br />
<br />
V2: fix spelling mistake.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
CPE | From | Up to |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.19.322 (excluding) | |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (including) | 5.4.284 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.226 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.167 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.110 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.51 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.10.10 (excluding) |
cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.11:rc3:*:*:*:*:*:* |
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/087f25b2d36adae19951114ffcbb7106ed405ebb
- https://git.kernel.org/stable/c/1b9451ba6f21478a75288ea3e3fca4be35e2a438
- https://git.kernel.org/stable/c/5c8906de98d0d7ad42ff3edf2cb6cd7e0ea658c4
- https://git.kernel.org/stable/c/810ee43d9cd245d138a2733d87a24858a23f577d
- https://git.kernel.org/stable/c/c3af7e460a526007e4bed1ce3623274a1a6afe5e
- https://git.kernel.org/stable/c/ef4e249971eb77ec33d74c5c3de1e2576faf6c90
- https://git.kernel.org/stable/c/f82cb7f24032ed023fc67d26ea9bf322d8431a90
- https://git.kernel.org/stable/c/fac5e82ab1334fc8ed6ff7183702df634bd1d93d