Lucene search

K
ubuntucveUbuntu.comUB:CVE-2024-26956
HistoryMay 01, 2024 - 12:00 a.m.

CVE-2024-26956

2024-05-0100:00:00
ubuntu.com
ubuntu.com
7
linux kernel
vulnerability resolved
nilfs2 fix
dat corruption
patch series
syzbot bug
metadata corruption
disk address translation
internal code
inconsistent state
file system error
bmap layer

7.8 High

AI Score

Confidence

High

0.0004 Low

EPSS

Percentile

13.1%

In the Linux kernel, the following vulnerability has been resolved: nilfs2:
fix failure to detect DAT corruption in btree and direct mappings Patch
series “nilfs2: fix kernel bug at submit_bh_wbc()”. This resolves a kernel
BUG reported by syzbot. Since there are two flaws involved, I’ve made each
one a separate patch. The first patch alone resolves the syzbot-reported
bug, but I think both fixes should be sent to stable, so I’ve tagged them
as such. This patch (of 2): Syzbot has reported a kernel bug in
submit_bh_wbc() when writing file data to a nilfs2 file system whose
metadata is corrupted. There are two flaws involved in this issue. The
first flaw is that when nilfs_get_block() locates a data block using btree
or direct mapping, if the disk address translation routine
nilfs_dat_translate() fails with internal code -ENOENT due to DAT metadata
corruption, it can be passed back to nilfs_get_block(). This causes
nilfs_get_block() to misidentify an existing block as non-existent, causing
both data block lookup and insertion to fail inconsistently. The second
flaw is that nilfs_get_block() returns a successful status in this
inconsistent state. This causes the caller __block_write_begin_int() or
others to request a read even though the buffer is not mapped, resulting in
a BUG_ON check for the BH_Mapped flag in submit_bh_wbc() failing. This
fixes the first issue by changing the return value to code -EINVAL when a
conversion using DAT fails with code -ENOENT, avoiding the conflicting
condition that leads to the kernel bug described above. Here, code -EINVAL
indicates that metadata corruption was detected during the block lookup,
which will be properly handled as a file system error and converted to -EIO
when passing through the nilfs2 bmap layer.

References

7.8 High

AI Score

Confidence

High

0.0004 Low

EPSS

Percentile

13.1%