CVE-2026-80807
Description
In the Linux kernel, the following vulnerability has been resolved: nilfs2: reject invalid block index in GC ioctl Syzbot reported list corruption caused by a double list_add_tail() call on bh->b_assoc_buffers within nilfs_lookup_dirty_data_buffers(). Analysis revealed that the root cause was the insertion of a page/folio with a page index of ULONG_MAX into the page cache via the GC ioctl. filemap_get_folios_tag(), called by nilfs_lookup_dirty_data_buffers(), repeatedly detects a dirty folio with a page index of ULONG_MAX due to index wrap-around, leading to duplicate processing of dirty buffers. As a preparatory step, the GC ioctl loads the page/folio of the block to be moved during GC and inserts it into the page cache based on information in the nilfs_vdesc structure passed as an argument. Normally, this does not cause issues because the user-space GC library configures the nilfs_vdesc structure properly. However, since there is no range check on the parameters determining the page index, a request with artificially crafted parameters -- such as those generated by Syzbot -- can result in a page/folio being inserted with a page index of ULONG_MAX, triggering the above problem. This resolves the issue by checking the ranges of 'vd_offset' and 'vd_vblocknr' in the nilfs_vdesc structure that determine the page index, thereby preventing the invalid page/folio insertions.
How to fix
- Linux Linux898404cdf882d7b54f1132f75570984ca3214796, ba8a8b563a28d358c45c62a306d421434a058648, 3bd064ccc70b85f9a3d53aece29dc8473be5a226, a5e776e2937581d67ec5b9b4d27b0f70d7baa6b1, 68aa9ab6f8f2895713aa6ddf781463ed8ea5ba44, e447f7edb99bd00cec63d6f3049e2e5074946f71, ec6ddf271dfa4c7e3147bc2c8b2bad4315f316a1, fbcfb75c20d71a5b542ad4ac3b79d10b997c8152, a1735eae55448bc79c2da6593455791e886f6ed8 or later
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| Linux Linux | 7942b919f7321f95a777d396ff7894a7a83dc9b0 ≤ v < 898404cdf882d7b54f1132f75570984ca3214796, 7942b919f7321f95a777d396ff7894a7a83dc9b0 ≤ v < ba8a8b563a28d358c45c62a306d421434a058648, 7942b919f7321f95a777d396ff7894a7a83dc9b0 ≤ v < 3bd064ccc70b85f9a3d53aece29dc8473be5a226, 7942b919f7321f95a777d396ff7894a7a83dc9b0 ≤ v < a5e776e2937581d67ec5b9b4d27b0f70d7baa6b1, 7942b919f7321f95a777d396ff7894a7a83dc9b0 ≤ v < 68aa9ab6f8f2895713aa6ddf781463ed8ea5ba44, 7942b919f7321f95a777d396ff7894a7a83dc9b0 ≤ v < e447f7edb99bd00cec63d6f3049e2e5074946f71, 7942b919f7321f95a777d396ff7894a7a83dc9b0 ≤ v < ec6ddf271dfa4c7e3147bc2c8b2bad4315f316a1, 7942b919f7321f95a777d396ff7894a7a83dc9b0 ≤ v < fbcfb75c20d71a5b542ad4ac3b79d10b997c8152, 7942b919f7321f95a777d396ff7894a7a83dc9b0 ≤ v < a1735eae55448bc79c2da6593455791e886f6ed8, 2.6.30 | 898404cdf882d7b54f1132f75570984ca3214796, ba8a8b563a28d358c45c62a306d421434a058648, 3bd064ccc70b85f9a3d53aece29dc8473be5a226, a5e776e2937581d67ec5b9b4d27b0f70d7baa6b1, 68aa9ab6f8f2895713aa6ddf781463ed8ea5ba44, e447f7edb99bd00cec63d6f3049e2e5074946f71, ec6ddf271dfa4c7e3147bc2c8b2bad4315f316a1, fbcfb75c20d71a5b542ad4ac3b79d10b997c8152, a1735eae55448bc79c2da6593455791e886f6ed8 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.