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.
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.
Metrics
Affected Vendors & Products
Advisories
| Source | ID | Title |
|---|---|---|
Debian DLA |
DLA-3840-1 | linux security update |
Debian DLA |
DLA-3842-1 | linux-5.10 security update |
Debian DSA |
DSA-5681-1 | linux security update |
Ubuntu USN |
USN-6816-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6817-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6817-2 | Linux kernel (OEM) vulnerabilities |
Ubuntu USN |
USN-6817-3 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6878-1 | Linux kernel (Oracle) vulnerabilities |
Ubuntu USN |
USN-6896-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6896-2 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6896-3 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6896-4 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6896-5 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6898-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6898-2 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6898-3 | Linux kernel kernel vulnerabilities |
Ubuntu USN |
USN-6898-4 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6917-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6919-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6927-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7019-1 | Linux kernel vulnerabilities |
Fixes
Solution
No solution given by the vendor.
Workaround
No workaround given by the vendor.
References
History
Fri, 22 Nov 2024 12:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Tue, 05 Nov 2024 10:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Projects
Sign in to view the affected projects.
Status: PUBLISHED
Assigner: Linux
Published:
Updated: 2025-05-04T09:00:39.824Z
Reserved: 2024-02-19T14:20:24.200Z
Link: CVE-2024-26956
Updated: 2024-08-02T00:21:05.748Z
Status : Awaiting Analysis
Published: 2024-05-01T06:15:11.837
Modified: 2024-11-21T09:03:29.057
Link: CVE-2024-26956
OpenCVE Enrichment
Updated: 2025-07-12T22:01:25Z
Weaknesses
No weakness.
Debian DLA
Debian DSA
Ubuntu USN