Description
In the Linux kernel, the following vulnerability has been resolved: ocfs2: fix UBSAN array-index-out-of-bounds in ocfs2_sum_rightmost_rec [BUG] On-disk corruption setting l_next_free_rec to 0 in an inode's embedded extent list triggers a UBSAN panic on the next write to that file. [CAUSE] ocfs2_sum_rightmost_rec() computes i = le16_to_cpu(el->l_next_free_rec) - 1 and accesses el->l_recs[i] without validating i. When l_next_free_rec is 0, i becomes -1; when l_next_free_rec exceeds l_count, i falls past the end of the array. Either case violates the __counted_by_le(l_count) annotation on l_recs[] and triggers UBSAN. [FIX] Validate the inode's embedded extent list when the inode is read, in ocfs2_validate_inode_block(): l_count must be non-zero and no larger than the inode block can hold, and l_next_free_rec must not exceed l_count. A corrupt list is rejected at read time, before the b-tree code can index l_recs[] out of bounds.
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
dcd0538ff4e854fa9d7f4630b359ca8fdb5cb5a8 to < c88226315aec298894ec57e532f5e95f3b09e874affecteddcd0538ff4e854fa9d7f4630b359ca8fdb5cb5a8 to < c286319746cef02bcce7384fda3a3f08989070d2affecteddcd0538ff4e854fa9d7f4630b359ca8fdb5cb5a8 to < 720fb324cf0f5116318cae7f75cb393d118ffb67affecteddcd0538ff4e854fa9d7f4630b359ca8fdb5cb5a8 to < 671889c553ea55e2da6a4f3b15f4c0fa40f2f0d1affecteddcd0538ff4e854fa9d7f4630b359ca8fdb5cb5a8 to < 858aa4965ffa8c0d4bb5dd835ac4f1c9a1dcab85affecteddcd0538ff4e854fa9d7f4630b359ca8fdb5cb5a8 to < 452a8467be8143747292218212671deeb186d2aeaffected
Linux Linux
Default version status: affected
2.6.22affected0 to < 2.6.22unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.18.40 to ≤ 6.18.*unaffected7.1.5 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/c88226315aec298894ec57e532f5e95f3b09e874 ↗
- https://git.kernel.org/stable/c/c286319746cef02bcce7384fda3a3f08989070d2 ↗
- https://git.kernel.org/stable/c/720fb324cf0f5116318cae7f75cb393d118ffb67 ↗
- https://git.kernel.org/stable/c/671889c553ea55e2da6a4f3b15f4c0fa40f2f0d1 ↗
- https://git.kernel.org/stable/c/858aa4965ffa8c0d4bb5dd835ac4f1c9a1dcab85 ↗
- https://git.kernel.org/stable/c/452a8467be8143747292218212671deeb186d2ae ↗