CVE-2024-43859

f2fs: fix to truncate preallocated blocks in f2fs_file_open()

published August 17, 2024

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

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

f2fs: fix to truncate preallocated blocks in f2fs_file_open()

chenyuwen reports a f2fs bug as below:

Unable to handle kernel NULL pointer dereference at virtual address 0000000000000011

fscrypt_set_bio_crypt_ctx+0x78/0x1e8

f2fs_grab_read_bio+0x78/0x208

f2fs_submit_page_read+0x44/0x154

f2fs_get_read_data_page+0x288/0x5f4

f2fs_get_lock_data_page+0x60/0x190

truncate_partial_data_page+0x108/0x4fc

f2fs_do_truncate_blocks+0x344/0x5f0

f2fs_truncate_blocks+0x6c/0x134

f2fs_truncate+0xd8/0x200

f2fs_iget+0x20c/0x5ac

do_garbage_collect+0x5d0/0xf6c

f2fs_gc+0x22c/0x6a4

f2fs_disable_checkpoint+0xc8/0x310

f2fs_fill_super+0x14bc/0x1764

mount_bdev+0x1b4/0x21c

f2fs_mount+0x20/0x30

legacy_get_tree+0x50/0xbc

vfs_get_tree+0x5c/0x1b0

do_new_mount+0x298/0x4cc

path_mount+0x33c/0x5fc

__arm64_sys_mount+0xcc/0x15c

invoke_syscall+0x60/0x150

el0_svc_common+0xb8/0xf8

do_el0_svc+0x28/0xa0

el0_svc+0x24/0x84

el0t_64_sync_handler+0x88/0xec

It is because inode.i_crypt_info is not initialized during below path:

- mount

- f2fs_fill_super

- f2fs_disable_checkpoint

- f2fs_gc

- f2fs_iget

- f2fs_truncate

So, let's relocate truncation of preallocated blocks to f2fs_file_open(),

after fscrypt_file_open().

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00237 · 13.9th percentile
Published
2024-08-17T09:24Z
EPSS history
Timeline
  • 17 AUG 09:24Z
    f2fs: fix to truncate preallocated blocks in f2fs_file_open()
    cvelistv5