CVE-2024-38599
Severity CVSS v4.0:
Pending analysis
Type:
CWE-125
Out-of-bounds Read
Publication date:
19/06/2024
Last modified:
04/08/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
jffs2: prevent xattr node from overflowing the eraseblock<br />
<br />
Add a check to make sure that the requested xattr node size is no larger<br />
than the eraseblock minus the cleanmarker.<br />
<br />
Unlike the usual inode nodes, the xattr nodes aren&#39;t split into parts<br />
and spread across multiple eraseblocks, which means that a xattr node<br />
must not occupy more than one eraseblock. If the requested xattr value is<br />
too large, the xattr node can spill onto the next eraseblock, overwriting<br />
the nodes and causing errors such as:<br />
<br />
jffs2: argh. node added in wrong place at 0x0000b050(2)<br />
jffs2: nextblock 0x0000a000, expected at 0000b00c<br />
jffs2: error: (823) do_verify_xattr_datum: node CRC failed at 0x01e050,<br />
read=0xfc892c93, calc=0x000000<br />
jffs2: notice: (823) jffs2_get_inode_nodes: Node header CRC failed<br />
at 0x01e00c. {848f,2fc4,0fef511f,59a3d171}<br />
jffs2: Node at 0x0000000c with length 0x00001044 would run over the<br />
end of the erase block<br />
jffs2: Perhaps the file system was created with the wrong erase size?<br />
jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found<br />
at 0x00000010: 0x1044 instead<br />
<br />
This breaks the filesystem and can lead to KASAN crashes such as:<br />
<br />
BUG: KASAN: slab-out-of-bounds in jffs2_sum_add_kvec+0x125e/0x15d0<br />
Read of size 4 at addr ffff88802c31e914 by task repro/830<br />
CPU: 0 PID: 830 Comm: repro Not tainted 6.9.0-rc3+ #1<br />
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),<br />
BIOS Arch Linux 1.16.3-1-1 04/01/2014<br />
Call Trace:<br />
<br />
dump_stack_lvl+0xc6/0x120<br />
print_report+0xc4/0x620<br />
? __virt_addr_valid+0x308/0x5b0<br />
kasan_report+0xc1/0xf0<br />
? jffs2_sum_add_kvec+0x125e/0x15d0<br />
? jffs2_sum_add_kvec+0x125e/0x15d0<br />
jffs2_sum_add_kvec+0x125e/0x15d0<br />
jffs2_flash_direct_writev+0xa8/0xd0<br />
jffs2_flash_writev+0x9c9/0xef0<br />
? __x64_sys_setxattr+0xc4/0x160<br />
? do_syscall_64+0x69/0x140<br />
? entry_SYSCALL_64_after_hwframe+0x76/0x7e<br />
[...]<br />
<br />
Found by Linux Verification Center (linuxtesting.org) with Syzkaller.
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:*:*:*:*:*:*:*:* | 2.6.18 (including) | 4.19.316 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (including) | 5.4.278 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.219 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.161 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.93 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.33 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.8.12 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.9 (including) | 6.9.3 (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/2904e1d9b64f72d291095e3cbb31634f08788b11
- https://git.kernel.org/stable/c/526235dffcac74c7823ed504dfac4f88d84ba5df
- https://git.kernel.org/stable/c/8d431391320c5c5398ff966fb3a95e68a7def275
- https://git.kernel.org/stable/c/978a12c91b38bf1a213e567f3c20e2beef215f07
- https://git.kernel.org/stable/c/a1d21bcd78cf4a4353e1e835789429c6b76aca8b
- https://git.kernel.org/stable/c/af82d8d2179b7277ad627c39e7e0778f1c86ccdb
- https://git.kernel.org/stable/c/c6854e5a267c28300ff045480b5a7ee7f6f1d913
- https://git.kernel.org/stable/c/f06969df2e40ab1dc8f4364a5de967830c74a098
- https://git.kernel.org/stable/c/f0eea095ce8c959b86e1e57fe36ca4fea5ae54f8
- https://git.kernel.org/stable/c/2904e1d9b64f72d291095e3cbb31634f08788b11
- https://git.kernel.org/stable/c/526235dffcac74c7823ed504dfac4f88d84ba5df
- https://git.kernel.org/stable/c/8d431391320c5c5398ff966fb3a95e68a7def275
- https://git.kernel.org/stable/c/978a12c91b38bf1a213e567f3c20e2beef215f07
- https://git.kernel.org/stable/c/a1d21bcd78cf4a4353e1e835789429c6b76aca8b
- https://git.kernel.org/stable/c/af82d8d2179b7277ad627c39e7e0778f1c86ccdb
- https://git.kernel.org/stable/c/c6854e5a267c28300ff045480b5a7ee7f6f1d913
- https://git.kernel.org/stable/c/f06969df2e40ab1dc8f4364a5de967830c74a098
- https://git.kernel.org/stable/c/f0eea095ce8c959b86e1e57fe36ca4fea5ae54f8
- https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html
- https://cert-portal.siemens.com/productcert/html/ssa-265688.html


