| From bippy-5f407fcff5a0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2024-41014: xfs: add bounds checking to xlog_recover_process_data |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| xfs: add bounds checking to xlog_recover_process_data |
| |
| There is a lack of verification of the space occupied by fixed members |
| of xlog_op_header in the xlog_recover_process_data. |
| |
| We can create a crafted image to trigger an out of bounds read by |
| following these steps: |
| 1) Mount an image of xfs, and do some file operations to leave records |
| 2) Before umounting, copy the image for subsequent steps to simulate |
| abnormal exit. Because umount will ensure that tail_blk and |
| head_blk are the same, which will result in the inability to enter |
| xlog_recover_process_data |
| 3) Write a tool to parse and modify the copied image in step 2 |
| 4) Make the end of the xlog_op_header entries only 1 byte away from |
| xlog_rec_header->h_size |
| 5) xlog_rec_header->h_num_logops++ |
| 6) Modify xlog_rec_header->h_crc |
| |
| Fix: |
| Add a check to make sure there is sufficient space to access fixed members |
| of xlog_op_header. |
| |
| The Linux kernel CVE team has assigned CVE-2024-41014 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Fixed in 6.1.120 with commit d1e3efe783365db59da88f08a2e0bfe1cc95b143 |
| Fixed in 6.6.64 with commit 7cd9f0a33e738cd58876f1bc8d6c1aa5bc4fc8c1 |
| Fixed in 6.11 with commit fb63435b7c7dc112b1ae1baea5486e0a6e27b196 |
| |
| Please see https://www.kernel.org for a full list of currently supported |
| kernel versions by the kernel community. |
| |
| Unaffected versions might change over time as fixes are backported to |
| older supported kernel versions. The official CVE entry at |
| https://cve.org/CVERecord/?id=CVE-2024-41014 |
| will be updated if fixes are backported, please check that for the most |
| up to date information about this issue. |
| |
| |
| Affected files |
| ============== |
| |
| The file(s) affected by this issue are: |
| fs/xfs/xfs_log_recover.c |
| |
| |
| Mitigation |
| ========== |
| |
| The Linux kernel CVE team recommends that you update to the latest |
| stable kernel version for this, and many other bugfixes. Individual |
| changes are never tested alone, but rather are part of a larger kernel |
| release. Cherry-picking individual commits is not recommended or |
| supported by the Linux kernel community at all. If however, updating to |
| the latest release is impossible, the individual changes to resolve this |
| issue can be found at these commits: |
| https://git.kernel.org/stable/c/d1e3efe783365db59da88f08a2e0bfe1cc95b143 |
| https://git.kernel.org/stable/c/7cd9f0a33e738cd58876f1bc8d6c1aa5bc4fc8c1 |
| https://git.kernel.org/stable/c/fb63435b7c7dc112b1ae1baea5486e0a6e27b196 |