CVE-2022-49708

ext4: fix bug_on ext4_mb_use_inode_pa

published February 26, 2025

CVSS
—
EPSS
0%
Percentile
19.8
In the wild
Unconfirmed
What it is

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

ext4: fix bug_on ext4_mb_use_inode_pa

Hulk Robot reported a BUG_ON:

==================================================================

kernel BUG at fs/ext4/mballoc.c:3211!

[...]

RIP: 0010:ext4_mb_mark_diskspace_used.cold+0x85/0x136f

[...]

Call Trace:

ext4_mb_new_blocks+0x9df/0x5d30

ext4_ext_map_blocks+0x1803/0x4d80

ext4_map_blocks+0x3a4/0x1a10

ext4_writepages+0x126d/0x2c30

do_writepages+0x7f/0x1b0

__filemap_fdatawrite_range+0x285/0x3b0

file_write_and_wait_range+0xb1/0x140

ext4_sync_file+0x1aa/0xca0

vfs_fsync_range+0xfb/0x260

do_fsync+0x48/0xa0

[...]

==================================================================

Above issue may happen as follows:

-------------------------------------

do_fsync

vfs_fsync_range

ext4_sync_file

file_write_and_wait_range

__filemap_fdatawrite_range

do_writepages

ext4_writepages

mpage_map_and_submit_extent

mpage_map_one_extent

ext4_map_blocks

ext4_mb_new_blocks

ext4_mb_normalize_request

>>> start + size <= ac->ac_o_ex.fe_logical

ext4_mb_regular_allocator

ext4_mb_simple_scan_group

ext4_mb_use_best_found

ext4_mb_new_preallocation

ext4_mb_new_inode_pa

ext4_mb_use_inode_pa

>>> set ac->ac_b_ex.fe_len <= 0

ext4_mb_mark_diskspace_used

>>> BUG_ON(ac->ac_b_ex.fe_len <= 0);

we can easily reproduce this problem with the following commands:

`fallocate -l100M disk`

`mkfs.ext4 -b 1024 -g 256 disk`

`mount disk /mnt`

`fsstress -d /mnt -l 0 -n 1000 -p 1`

The size must be smaller than or equal to EXT4_BLOCKS_PER_GROUP.

Therefore, "start + size <= ac->ac_o_ex.fe_logical" may occur

when the size is truncated. So start should be the start position of

the group where ac_o_ex.fe_logical is located after alignment.

In addition, when the value of fe_logical or EXT4_BLOCKS_PER_GROUP

is very large, the value calculated by start_off is more accurate.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00284 · 19.8th percentile
Published
2025-02-26T02:24Z
EPSS history
Timeline
  • 26 FEB 02:24Z
    ext4: fix bug_on ext4_mb_use_inode_pa
    cvelistv5