CVE-2026-53040

Severity CVSS v4.0:
Pending analysis
Type:
CWE-416 Use After Free
Publication date:
24/06/2026
Last modified:
14/07/2026

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> ocfs2: validate bg_bits during freefrag scan<br /> <br /> [BUG]<br /> A crafted filesystem can trigger an out-of-bounds bitmap walk when<br /> OCFS2_IOC_INFO is issued with OCFS2_INFO_FL_NON_COHERENT.<br /> <br /> BUG: KASAN: use-after-free in instrument_atomic_read include/linux/instrumented.h:68 [inline]<br /> BUG: KASAN: use-after-free in _test_bit include/asm-generic/bitops/instrumented-non-atomic.h:141 [inline]<br /> BUG: KASAN: use-after-free in test_bit_le include/asm-generic/bitops/le.h:21 [inline]<br /> BUG: KASAN: use-after-free in ocfs2_info_freefrag_scan_chain fs/ocfs2/ioctl.c:495 [inline]<br /> BUG: KASAN: use-after-free in ocfs2_info_freefrag_scan_bitmap fs/ocfs2/ioctl.c:588 [inline]<br /> BUG: KASAN: use-after-free in ocfs2_info_handle_freefrag fs/ocfs2/ioctl.c:662 [inline]<br /> BUG: KASAN: use-after-free in ocfs2_info_handle_request+0x1c66/0x3370 fs/ocfs2/ioctl.c:754<br /> Read of size 8 at addr ffff888031bce000 by task syz.0.636/1435<br /> Call Trace:<br /> __dump_stack lib/dump_stack.c:94 [inline]<br /> dump_stack_lvl+0xbe/0x130 lib/dump_stack.c:120<br /> print_address_description mm/kasan/report.c:378 [inline]<br /> print_report+0xd1/0x650 mm/kasan/report.c:482<br /> kasan_report+0xfb/0x140 mm/kasan/report.c:595<br /> check_region_inline mm/kasan/generic.c:186 [inline]<br /> kasan_check_range+0x11c/0x200 mm/kasan/generic.c:200<br /> __kasan_check_read+0x11/0x20 mm/kasan/shadow.c:31<br /> instrument_atomic_read include/linux/instrumented.h:68 [inline]<br /> _test_bit include/asm-generic/bitops/instrumented-non-atomic.h:141 [inline]<br /> test_bit_le include/asm-generic/bitops/le.h:21 [inline]<br /> ocfs2_info_freefrag_scan_chain fs/ocfs2/ioctl.c:495 [inline]<br /> ocfs2_info_freefrag_scan_bitmap fs/ocfs2/ioctl.c:588 [inline]<br /> ocfs2_info_handle_freefrag fs/ocfs2/ioctl.c:662 [inline]<br /> ocfs2_info_handle_request+0x1c66/0x3370 fs/ocfs2/ioctl.c:754<br /> ocfs2_info_handle+0x18d/0x2a0 fs/ocfs2/ioctl.c:828<br /> ocfs2_ioctl+0x632/0x6e0 fs/ocfs2/ioctl.c:913<br /> vfs_ioctl fs/ioctl.c:51 [inline]<br /> __do_sys_ioctl fs/ioctl.c:597 [inline]<br /> __se_sys_ioctl fs/ioctl.c:583 [inline]<br /> __x64_sys_ioctl+0x197/0x1e0 fs/ioctl.c:583<br /> ...<br /> <br /> [CAUSE]<br /> ocfs2_info_freefrag_scan_chain() uses on-disk bg_bits directly as the<br /> bitmap scan limit. The coherent path reads group descriptors through<br /> ocfs2_read_group_descriptor(), which validates the descriptor before<br /> use. The non-coherent path uses ocfs2_read_blocks_sync() instead and<br /> skips that validation, so an impossible bg_bits value can drive the<br /> bitmap walk past the end of the block.<br /> <br /> [FIX]<br /> Compute the bitmap capacity from the filesystem format with<br /> ocfs2_group_bitmap_size(), report descriptors whose bg_bits exceeds<br /> that limit, and clamp the scan to the computed capacity. This keeps the<br /> freefrag report going while avoiding reads beyond the buffer.

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 3.0 (including) 5.10.258 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (including) 5.15.209 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (including) 6.1.175 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (including) 6.6.141 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (including) 6.12.91 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 (including) 6.18.33 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 (including) 7.0.10 (excluding)