CVE-2026-53320

nilfs2: reject zero bd_oblocknr in nilfs_ioctl_mark_blocks_dirty()

published June 26, 2026

CVSS
—
EPSS
0%
Percentile
6.4
In the wild
Unconfirmed
What it is

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

nilfs2: reject zero bd_oblocknr in nilfs_ioctl_mark_blocks_dirty()

nilfs_ioctl_mark_blocks_dirty() uses bd_oblocknr to detect dead blocks

by comparing it with the current block number bd_blocknr. If they differ,

the block is considered dead and skipped.

However, bd_oblocknr should never be 0 since block 0 typically stores the

primary superblock and is never a valid GC target block. A corrupted ioctl

request with bd_oblocknr set to 0 causes the comparison to incorrectly

match when the lookup returns -ENOENT and sets bd_blocknr to 0, bypassing

the dead block check and calling nilfs_bmap_mark() on a non-existent

block. This causes nilfs_btree_do_lookup() to return -ENOENT, triggering

the WARN_ON(ret == -ENOENT).

Fix this by rejecting ioctl requests with bd_oblocknr set to 0 at the

beginning of each iteration.

[ryusuke: slightly modified the commit message and comments for accuracy]

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00173 · 6.4th percentile
Published
2026-06-26T19:41Z
EPSS history
Timeline
  • 26 JUN 19:41Z
    nilfs2: reject zero bd_oblocknr in nilfs_ioctl_mark_blocks_dirty()
    cvelistv5