Description (CNA)
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 (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected dcd0538ff4e854fa9d7f4630b359ca8fdb5cb5a8 before c286319746cef02bcce7384fda3a3f08989070d2; affected dcd0538ff4e854fa9d7f4630b359ca8fdb5cb5a8 before 720fb324cf0f5116318cae7f75cb393d118ffb67; affected dcd0538ff4e854fa9d7f4630b359ca8fdb5cb5a8 before 671889c553ea55e2da6a4f3b15f4c0fa40f2f0d1; affected dcd0538ff4e854fa9d7f4630b359ca8fdb5cb5a8 before 858aa4965ffa8c0d4bb5dd835ac4f1c9a1dcab85; affected dcd0538ff4e854fa9d7f4630b359ca8fdb5cb5a8 before 452a8467be8143747292218212671deeb186d2ae |
| Linux / Linux | affected 2.6.22; unaffected 0 before 2.6.22; unaffected 6.6.160 through 6.6.*; unaffected 6.12.114 through 6.12.*; unaffected 6.18.40 through 6.18.*; unaffected 7.1.5 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.
References
- 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