CVE-2024-49903

Severity CVSS v4.0:
Pending analysis
Type:
CWE-416 Use After Free
Publication date:
21/10/2024
Last modified:
03/11/2025

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> jfs: Fix uaf in dbFreeBits<br /> <br /> [syzbot reported]<br /> ==================================================================<br /> BUG: KASAN: slab-use-after-free in __mutex_lock_common kernel/locking/mutex.c:587 [inline]<br /> BUG: KASAN: slab-use-after-free in __mutex_lock+0xfe/0xd70 kernel/locking/mutex.c:752<br /> Read of size 8 at addr ffff8880229254b0 by task syz-executor357/5216<br /> <br /> CPU: 0 UID: 0 PID: 5216 Comm: syz-executor357 Not tainted 6.11.0-rc3-syzkaller-00156-gd7a5aa4b3c00 #0<br /> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/27/2024<br /> Call Trace:<br /> <br /> __dump_stack lib/dump_stack.c:93 [inline]<br /> dump_stack_lvl+0x241/0x360 lib/dump_stack.c:119<br /> print_address_description mm/kasan/report.c:377 [inline]<br /> print_report+0x169/0x550 mm/kasan/report.c:488<br /> kasan_report+0x143/0x180 mm/kasan/report.c:601<br /> __mutex_lock_common kernel/locking/mutex.c:587 [inline]<br /> __mutex_lock+0xfe/0xd70 kernel/locking/mutex.c:752<br /> dbFreeBits+0x7ea/0xd90 fs/jfs/jfs_dmap.c:2390<br /> dbFreeDmap fs/jfs/jfs_dmap.c:2089 [inline]<br /> dbFree+0x35b/0x680 fs/jfs/jfs_dmap.c:409<br /> dbDiscardAG+0x8a9/0xa20 fs/jfs/jfs_dmap.c:1650<br /> jfs_ioc_trim+0x433/0x670 fs/jfs/jfs_discard.c:100<br /> jfs_ioctl+0x2d0/0x3e0 fs/jfs/ioctl.c:131<br /> vfs_ioctl fs/ioctl.c:51 [inline]<br /> __do_sys_ioctl fs/ioctl.c:907 [inline]<br /> __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:893<br /> do_syscall_x64 arch/x86/entry/common.c:52 [inline]<br /> do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83<br /> <br /> Freed by task 5218:<br /> kasan_save_stack mm/kasan/common.c:47 [inline]<br /> kasan_save_track+0x3f/0x80 mm/kasan/common.c:68<br /> kasan_save_free_info+0x40/0x50 mm/kasan/generic.c:579<br /> poison_slab_object+0xe0/0x150 mm/kasan/common.c:240<br /> __kasan_slab_free+0x37/0x60 mm/kasan/common.c:256<br /> kasan_slab_free include/linux/kasan.h:184 [inline]<br /> slab_free_hook mm/slub.c:2252 [inline]<br /> slab_free mm/slub.c:4473 [inline]<br /> kfree+0x149/0x360 mm/slub.c:4594<br /> dbUnmount+0x11d/0x190 fs/jfs/jfs_dmap.c:278<br /> jfs_mount_rw+0x4ac/0x6a0 fs/jfs/jfs_mount.c:247<br /> jfs_remount+0x3d1/0x6b0 fs/jfs/super.c:454<br /> reconfigure_super+0x445/0x880 fs/super.c:1083<br /> vfs_cmd_reconfigure fs/fsopen.c:263 [inline]<br /> vfs_fsconfig_locked fs/fsopen.c:292 [inline]<br /> __do_sys_fsconfig fs/fsopen.c:473 [inline]<br /> __se_sys_fsconfig+0xb6e/0xf80 fs/fsopen.c:345<br /> do_syscall_x64 arch/x86/entry/common.c:52 [inline]<br /> do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83<br /> entry_SYSCALL_64_after_hwframe+0x77/0x7f<br /> <br /> [Analysis]<br /> There are two paths (dbUnmount and jfs_ioc_trim) that generate race<br /> condition when accessing bmap, which leads to the occurrence of uaf.<br /> <br /> Use the lock s_umount to synchronize them, in order to avoid uaf caused<br /> by race condition.

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.10.227 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (including) 5.15.168 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (including) 6.1.113 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (including) 6.6.55 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (including) 6.10.14 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.11 (including) 6.11.3 (excluding)