CVE-2024-50015

CVE-2024-50015

Medium · published October 21, 2024

CVSS v3.1
5.5
EPSS
0%
Percentile
14.2
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

ext4: dax: fix overflowing extents beyond inode size when partially writing

The dax_iomap_rw() does two things in each iteration: map written blocks

and copy user data to blocks. If the process is killed by user(See signal

handling in dax_iomap_iter()), the copied data will be returned and added

on inode size, which means that the length of written extents may exceed

the inode size, then fsck will fail. An example is given as:

dd if=/dev/urandom of=file bs=4M count=1

dax_iomap_rw

iomap_iter // round 1

ext4_iomap_begin

ext4_iomap_alloc // allocate 0~2M extents(written flag)

dax_iomap_iter // copy 2M data

iomap_iter // round 2

iomap_iter_advance

iter->pos += iter->processed // iter->pos = 2M

ext4_iomap_begin

ext4_iomap_alloc // allocate 2~4M extents(written flag)

dax_iomap_iter

fatal_signal_pending

done = iter->pos - iocb->ki_pos // done = 2M

ext4_handle_inode_extension

ext4_update_inode_size // inode size = 2M

fsck reports: Inode 13, i_size is 2097152, should be 4194304. Fix?

Fix the problem by truncating extents if the written length is smaller

than expected.

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00240 · 14.2th percentile
Published
2024-10-21T23:15Z
Affected products (6)
ProductVersionsFixed in
linux/linux_kernel≥ 4.10, < 5.10.2275.10.227
linux/linux_kernel≥ 5.11, < 5.15.1685.15.168
linux/linux_kernel≥ 5.16, < 6.1.1136.1.113
linux/linux_kernel≥ 6.2, < 6.6.556.6.55
linux/linux_kernel≥ 6.7, < 6.10.146.10.14
linux/linux_kernel≥ 6.11, < 6.11.36.11.3
References (11)
EPSS history
Timeline
  • 21 OCT 18:54Z
    ext4: dax: fix overflowing extents beyond inode size when partially writing
    cvelistv5