| From bippy-1.2.0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@kernel.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2024-36916: blk-iocost: avoid out of bounds shift |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| blk-iocost: avoid out of bounds shift |
| |
| UBSAN catches undefined behavior in blk-iocost, where sometimes |
| iocg->delay is shifted right by a number that is too large, |
| resulting in undefined behavior on some architectures. |
| |
| [ 186.556576] ------------[ cut here ]------------ |
| UBSAN: shift-out-of-bounds in block/blk-iocost.c:1366:23 |
| shift exponent 64 is too large for 64-bit type 'u64' (aka 'unsigned long long') |
| CPU: 16 PID: 0 Comm: swapper/16 Tainted: G S E N 6.9.0-0_fbk700_debug_rc2_kbuilder_0_gc85af715cac0 #1 |
| Hardware name: Quanta Twin Lakes MP/Twin Lakes Passive MP, BIOS F09_3A23 12/08/2020 |
| Call Trace: |
| <IRQ> |
| dump_stack_lvl+0x8f/0xe0 |
| __ubsan_handle_shift_out_of_bounds+0x22c/0x280 |
| iocg_kick_delay+0x30b/0x310 |
| ioc_timer_fn+0x2fb/0x1f80 |
| __run_timer_base+0x1b6/0x250 |
| ... |
| |
| Avoid that undefined behavior by simply taking the |
| "delay = 0" branch if the shift is too large. |
| |
| I am not sure what the symptoms of an undefined value |
| delay will be, but I suspect it could be more than a |
| little annoying to debug. |
| |
| The Linux kernel CVE team has assigned CVE-2024-36916 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 5.10 with commit 5160a5a53c0c4ae3708959d9465ea43ad5d90542 and fixed in 5.10.217 with commit 62accf6c1d7b433752cb3591bba8967b7a801ad5 |
| Issue introduced in 5.10 with commit 5160a5a53c0c4ae3708959d9465ea43ad5d90542 and fixed in 5.15.159 with commit 844fc023e9f14a4fb1de5ae1eaefafd6d69c5fa1 |
| Issue introduced in 5.10 with commit 5160a5a53c0c4ae3708959d9465ea43ad5d90542 and fixed in 6.1.91 with commit f6add0a6f78dc6360b822ca4b6f9f2f14174c8ca |
| Issue introduced in 5.10 with commit 5160a5a53c0c4ae3708959d9465ea43ad5d90542 and fixed in 6.6.31 with commit ce0e99cae00e3131872936713b7f55eefd53ab86 |
| Issue introduced in 5.10 with commit 5160a5a53c0c4ae3708959d9465ea43ad5d90542 and fixed in 6.8.10 with commit 488dc6808cb8369685f18cee81e88e7052ac153b |
| Issue introduced in 5.10 with commit 5160a5a53c0c4ae3708959d9465ea43ad5d90542 and fixed in 6.9 with commit beaa51b36012fad5a4d3c18b88a617aea7a9b96d |
| |
| 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-36916 |
| 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: |
| block/blk-iocost.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/62accf6c1d7b433752cb3591bba8967b7a801ad5 |
| https://git.kernel.org/stable/c/844fc023e9f14a4fb1de5ae1eaefafd6d69c5fa1 |
| https://git.kernel.org/stable/c/f6add0a6f78dc6360b822ca4b6f9f2f14174c8ca |
| https://git.kernel.org/stable/c/ce0e99cae00e3131872936713b7f55eefd53ab86 |
| https://git.kernel.org/stable/c/488dc6808cb8369685f18cee81e88e7052ac153b |
| https://git.kernel.org/stable/c/beaa51b36012fad5a4d3c18b88a617aea7a9b96d |