CVE-2026-53040

ocfs2: validate bg_bits during freefrag scan

High · published June 24, 2026

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

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

ocfs2: validate bg_bits during freefrag scan

[BUG]

A crafted filesystem can trigger an out-of-bounds bitmap walk when

OCFS2_IOC_INFO is issued with OCFS2_INFO_FL_NON_COHERENT.

BUG: KASAN: use-after-free in instrument_atomic_read include/linux/instrumented.h:68 [inline]

BUG: KASAN: use-after-free in _test_bit include/asm-generic/bitops/instrumented-non-atomic.h:141 [inline]

BUG: KASAN: use-after-free in test_bit_le include/asm-generic/bitops/le.h:21 [inline]

BUG: KASAN: use-after-free in ocfs2_info_freefrag_scan_chain fs/ocfs2/ioctl.c:495 [inline]

BUG: KASAN: use-after-free in ocfs2_info_freefrag_scan_bitmap fs/ocfs2/ioctl.c:588 [inline]

BUG: KASAN: use-after-free in ocfs2_info_handle_freefrag fs/ocfs2/ioctl.c:662 [inline]

BUG: KASAN: use-after-free in ocfs2_info_handle_request+0x1c66/0x3370 fs/ocfs2/ioctl.c:754

Read of size 8 at addr ffff888031bce000 by task syz.0.636/1435

Call Trace:

__dump_stack lib/dump_stack.c:94 [inline]

dump_stack_lvl+0xbe/0x130 lib/dump_stack.c:120

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

print_report+0xd1/0x650 mm/kasan/report.c:482

kasan_report+0xfb/0x140 mm/kasan/report.c:595

check_region_inline mm/kasan/generic.c:186 [inline]

kasan_check_range+0x11c/0x200 mm/kasan/generic.c:200

__kasan_check_read+0x11/0x20 mm/kasan/shadow.c:31

instrument_atomic_read include/linux/instrumented.h:68 [inline]

_test_bit include/asm-generic/bitops/instrumented-non-atomic.h:141 [inline]

test_bit_le include/asm-generic/bitops/le.h:21 [inline]

ocfs2_info_freefrag_scan_chain fs/ocfs2/ioctl.c:495 [inline]

ocfs2_info_freefrag_scan_bitmap fs/ocfs2/ioctl.c:588 [inline]

ocfs2_info_handle_freefrag fs/ocfs2/ioctl.c:662 [inline]

ocfs2_info_handle_request+0x1c66/0x3370 fs/ocfs2/ioctl.c:754

ocfs2_info_handle+0x18d/0x2a0 fs/ocfs2/ioctl.c:828

ocfs2_ioctl+0x632/0x6e0 fs/ocfs2/ioctl.c:913

vfs_ioctl fs/ioctl.c:51 [inline]

__do_sys_ioctl fs/ioctl.c:597 [inline]

__se_sys_ioctl fs/ioctl.c:583 [inline]

__x64_sys_ioctl+0x197/0x1e0 fs/ioctl.c:583

...

[CAUSE]

ocfs2_info_freefrag_scan_chain() uses on-disk bg_bits directly as the

bitmap scan limit. The coherent path reads group descriptors through

ocfs2_read_group_descriptor(), which validates the descriptor before

use. The non-coherent path uses ocfs2_read_blocks_sync() instead and

skips that validation, so an impossible bg_bits value can drive the

bitmap walk past the end of the block.

[FIX]

Compute the bitmap capacity from the filesystem format with

ocfs2_group_bitmap_size(), report descriptors whose bg_bits exceeds

that limit, and clamp the scan to the computed capacity. This keeps the

freefrag report going while avoiding reads beyond the buffer.

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.00122 · 1.8th percentile
Published
2026-06-24T16:29Z
EPSS history
Timeline
  • 24 JUN 16:29Z
    ocfs2: validate bg_bits during freefrag scan
    cvelistv5