CVE-2024-35849

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
17/05/2024
Last modified:
03/02/2025

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> btrfs: fix information leak in btrfs_ioctl_logical_to_ino()<br /> <br /> Syzbot reported the following information leak for in<br /> btrfs_ioctl_logical_to_ino():<br /> <br /> BUG: KMSAN: kernel-infoleak in instrument_copy_to_user include/linux/instrumented.h:114 [inline]<br /> BUG: KMSAN: kernel-infoleak in _copy_to_user+0xbc/0x110 lib/usercopy.c:40<br /> instrument_copy_to_user include/linux/instrumented.h:114 [inline]<br /> _copy_to_user+0xbc/0x110 lib/usercopy.c:40<br /> copy_to_user include/linux/uaccess.h:191 [inline]<br /> btrfs_ioctl_logical_to_ino+0x440/0x750 fs/btrfs/ioctl.c:3499<br /> btrfs_ioctl+0x714/0x1260<br /> vfs_ioctl fs/ioctl.c:51 [inline]<br /> __do_sys_ioctl fs/ioctl.c:904 [inline]<br /> __se_sys_ioctl+0x261/0x450 fs/ioctl.c:890<br /> __x64_sys_ioctl+0x96/0xe0 fs/ioctl.c:890<br /> x64_sys_call+0x1883/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:17<br /> do_syscall_x64 arch/x86/entry/common.c:52 [inline]<br /> do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83<br /> entry_SYSCALL_64_after_hwframe+0x77/0x7f<br /> <br /> Uninit was created at:<br /> __kmalloc_large_node+0x231/0x370 mm/slub.c:3921<br /> __do_kmalloc_node mm/slub.c:3954 [inline]<br /> __kmalloc_node+0xb07/0x1060 mm/slub.c:3973<br /> kmalloc_node include/linux/slab.h:648 [inline]<br /> kvmalloc_node+0xc0/0x2d0 mm/util.c:634<br /> kvmalloc include/linux/slab.h:766 [inline]<br /> init_data_container+0x49/0x1e0 fs/btrfs/backref.c:2779<br /> btrfs_ioctl_logical_to_ino+0x17c/0x750 fs/btrfs/ioctl.c:3480<br /> btrfs_ioctl+0x714/0x1260<br /> vfs_ioctl fs/ioctl.c:51 [inline]<br /> __do_sys_ioctl fs/ioctl.c:904 [inline]<br /> __se_sys_ioctl+0x261/0x450 fs/ioctl.c:890<br /> __x64_sys_ioctl+0x96/0xe0 fs/ioctl.c:890<br /> x64_sys_call+0x1883/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:17<br /> do_syscall_x64 arch/x86/entry/common.c:52 [inline]<br /> do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83<br /> entry_SYSCALL_64_after_hwframe+0x77/0x7f<br /> <br /> Bytes 40-65535 of 65536 are uninitialized<br /> Memory access of size 65536 starts at ffff888045a40000<br /> <br /> This happens, because we&amp;#39;re copying a &amp;#39;struct btrfs_data_container&amp;#39; back<br /> to user-space. This btrfs_data_container is allocated in<br /> &amp;#39;init_data_container()&amp;#39; via kvmalloc(), which does not zero-fill the<br /> memory.<br /> <br /> Fix this by using kvzalloc() which zeroes out the memory on allocation.

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.19.313 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.20 (including) 5.4.275 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.5 (including) 5.10.216 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (including) 5.15.158 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (including) 6.1.90 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (including) 6.6.30 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (including) 6.8.9 (excluding)
cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc5:*:*:*:*:*:*
cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*