Description
In the Linux kernel, the following vulnerability has been resolved: nilfs2: fix infinite loop in nilfs_mdt_get_block() If the disk image that nilfs2 mounts is corrupted and a virtual block address obtained by block lookup for a metadata file is invalid, nilfs_bmap_lookup_at_level() may return the same internal return code as -ENOENT, meaning the block does not exist in the metadata file. This duplication of return codes confuses nilfs_mdt_get_block(), causing it to read and create a metadata block indefinitely. In particular, if this happens to the inode metadata file, ifile, semaphore i_rwsem can be left held, causing task hangs in lock_mount. Fix this issue by making nilfs_bmap_lookup_at_level() treat virtual block address translation failures with -ENOENT as metadata corruption instead of returning the error code.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
bdb265eae08db578e7cf5739be16f389d495fc75 to < cfb0bb4fbd40c1f06da7e9f88c0a2d46155b90c2affectedbdb265eae08db578e7cf5739be16f389d495fc75 to < d536f9976bb04e9c84cf80045a9355975e418f41affectedbdb265eae08db578e7cf5739be16f389d495fc75 to < fe1cbbcb1a2532ee1654e1ff121be8906d83c6f0affectedbdb265eae08db578e7cf5739be16f389d495fc75 to < 8a89d36a07afe1ed4564df51fefa2bb556c85412affectedbdb265eae08db578e7cf5739be16f389d495fc75 to < 8d07d9119642ba43d21f8ba64d51d01931096b20affectedbdb265eae08db578e7cf5739be16f389d495fc75 to < 25457d07c8146e57d28906c663def033dc425af6affectedbdb265eae08db578e7cf5739be16f389d495fc75 to < 34c5f17222b50c79848bb03ec8811648813e6a45affectedbdb265eae08db578e7cf5739be16f389d495fc75 to < 5b29661669cb65b9750a3cf70ed3eaf947b92167affectedbdb265eae08db578e7cf5739be16f389d495fc75 to < a6a491c048882e7e424d407d32cba0b52d9ef2bfaffected
Linux Linux
Default version status: affected
2.6.30affected0 to < 2.6.30unaffected4.14.315 to ≤ 4.14.*unaffected4.19.283 to ≤ 4.19.*unaffected5.4.243 to ≤ 5.4.*unaffected5.10.180 to ≤ 5.10.*unaffected5.15.111 to ≤ 5.15.*unaffected6.1.28 to ≤ 6.1.*unaffected6.2.15 to ≤ 6.2.*unaffected6.3.2 to ≤ 6.3.*unaffected6.4 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/cfb0bb4fbd40c1f06da7e9f88c0a2d46155b90c2 ↗
- https://git.kernel.org/stable/c/d536f9976bb04e9c84cf80045a9355975e418f41 ↗
- https://git.kernel.org/stable/c/fe1cbbcb1a2532ee1654e1ff121be8906d83c6f0 ↗
- https://git.kernel.org/stable/c/8a89d36a07afe1ed4564df51fefa2bb556c85412 ↗
- https://git.kernel.org/stable/c/8d07d9119642ba43d21f8ba64d51d01931096b20 ↗
- https://git.kernel.org/stable/c/25457d07c8146e57d28906c663def033dc425af6 ↗
- https://git.kernel.org/stable/c/34c5f17222b50c79848bb03ec8811648813e6a45 ↗
- https://git.kernel.org/stable/c/5b29661669cb65b9750a3cf70ed3eaf947b92167 ↗
- https://git.kernel.org/stable/c/a6a491c048882e7e424d407d32cba0b52d9ef2bf ↗