CVE-2022-49738CWE-125

CVE-2022-49738

High · published March 27, 2025

CVSS v3.1
7.1
EPSS
0%
Percentile
9.2
In the wild
Unconfirmed
What it is

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

f2fs: fix to do sanity check on i_extra_isize in is_alive()

syzbot found a f2fs bug:

BUG: KASAN: slab-out-of-bounds in data_blkaddr fs/f2fs/f2fs.h:2891 [inline]

BUG: KASAN: slab-out-of-bounds in is_alive fs/f2fs/gc.c:1117 [inline]

BUG: KASAN: slab-out-of-bounds in gc_data_segment fs/f2fs/gc.c:1520 [inline]

BUG: KASAN: slab-out-of-bounds in do_garbage_collect+0x386a/0x3df0 fs/f2fs/gc.c:1734

Read of size 4 at addr ffff888076557568 by task kworker/u4:3/52

CPU: 1 PID: 52 Comm: kworker/u4:3 Not tainted 6.1.0-rc4-syzkaller-00362-gfef7fd48922d #0

Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022

Workqueue: writeback wb_workfn (flush-7:0)

Call Trace:

<TASK>

__dump_stack lib/dump_stack.c:88 [inline]

dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106

print_address_description mm/kasan/report.c:284 [inline]

print_report+0x15e/0x45d mm/kasan/report.c:395

kasan_report+0xbb/0x1f0 mm/kasan/report.c:495

data_blkaddr fs/f2fs/f2fs.h:2891 [inline]

is_alive fs/f2fs/gc.c:1117 [inline]

gc_data_segment fs/f2fs/gc.c:1520 [inline]

do_garbage_collect+0x386a/0x3df0 fs/f2fs/gc.c:1734

f2fs_gc+0x88c/0x20a0 fs/f2fs/gc.c:1831

f2fs_balance_fs+0x544/0x6b0 fs/f2fs/segment.c:410

f2fs_write_inode+0x57e/0xe20 fs/f2fs/inode.c:753

write_inode fs/fs-writeback.c:1440 [inline]

__writeback_single_inode+0xcfc/0x1440 fs/fs-writeback.c:1652

writeback_sb_inodes+0x54d/0xf90 fs/fs-writeback.c:1870

wb_writeback+0x2c5/0xd70 fs/fs-writeback.c:2044

wb_do_writeback fs/fs-writeback.c:2187 [inline]

wb_workfn+0x2dc/0x12f0 fs/fs-writeback.c:2227

process_one_work+0x9bf/0x1710 kernel/workqueue.c:2289

worker_thread+0x665/0x1080 kernel/workqueue.c:2436

kthread+0x2e4/0x3a0 kernel/kthread.c:376

ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:306

The root cause is that we forgot to do sanity check on .i_extra_isize

in below path, result in accessing invalid address later, fix it.

- gc_data_segment

- is_alive

- data_blkaddr

- offset_in_addr

The record
Technical detail
CVSS v3.1
7.1 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00199 · 9.2th percentile
Weakness
CWE-125 · Out-of-bounds Read
Published
2025-03-27T21:15Z
Affected products (4)
ProductVersionsFixed in
linux/linux_kernel< 5.4.2325.4.232
linux/linux_kernel≥ 5.5, < 5.10.1685.10.168
linux/linux_kernel≥ 5.11, < 5.15.935.15.93
linux/linux_kernel≥ 5.16, < 6.1.116.1.11
References (5)
EPSS history
Timeline
  • 27 MAR 16:42Z
    f2fs: fix to do sanity check on i_extra_isize in is_alive()
    cvelistv5