CVE-2026-23238
EUVD-2026-941004.03.2026, 15:16
In the Linux kernel, the following vulnerability has been resolved:
romfs: check sb_set_blocksize() return value
romfs_fill_super() ignores the return value of sb_set_blocksize(), which
can fail if the requested block size is incompatible with the block
device's configuration.
This can be triggered by setting a loop device's block size larger than
PAGE_SIZE using ioctl(LOOP_SET_BLOCK_SIZE, 32768), then mounting a romfs
filesystem on that device.
When sb_set_blocksize(sb, ROMBSIZE) is called with ROMBSIZE=4096 but the
device has logical_block_size=32768, bdev_validate_blocksize() fails
because the requested size is smaller than the device's logical block
size. sb_set_blocksize() returns 0 (failure), but romfs ignores this and
continues mounting.
The superblock's block size remains at the device's logical block size
(32768). Later, when sb_bread() attempts I/O with this oversized block
size, it triggers a kernel BUG in folio_set_bh():
kernel BUG at fs/buffer.c:1582!
BUG_ON(size > PAGE_SIZE);
Fix by checking the return value of sb_set_blocksize() and failing the
mount with -EINVAL if it returns 0.EnginsightAffected Products (NVD)
| Vendor | Product | Version |
|---|---|---|
| linux | linux_kernel | 2.6.12.1 ≤ 𝑥 < 5.10.251 |
| linux | linux_kernel | 5.11 ≤ 𝑥 < 5.15.201 |
| linux | linux_kernel | 5.16 ≤ 𝑥 < 6.1.164 |
| linux | linux_kernel | 6.2 ≤ 𝑥 < 6.6.127 |
| linux | linux_kernel | 6.7 ≤ 𝑥 < 6.12.74 |
| linux | linux_kernel | 6.13 ≤ 𝑥 < 6.18.13 |
| linux | linux_kernel | 2.6.12 |
| linux | linux_kernel | 2.6.12:rc2 |
| linux | linux_kernel | 2.6.12:rc3 |
| linux | linux_kernel | 2.6.12:rc4 |
| linux | linux_kernel | 2.6.12:rc5 |
| linux | linux_kernel | 6.19:rc1 |
| linux | linux_kernel | 6.19:rc2 |
| linux | linux_kernel | 6.19:rc3 |
| linux | linux_kernel | 6.19:rc4 |
| linux | linux_kernel | 6.19:rc5 |
| linux | linux_kernel | 6.19:rc6 |
| linux | linux_kernel | 6.19:rc7 |
𝑥
= Vulnerable software versions
Debian Releases
Common Weakness Enumeration
References