| 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-2021-46974: bpf: Fix masking negation logic upon negative dst register |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| bpf: Fix masking negation logic upon negative dst register |
| |
| The negation logic for the case where the off_reg is sitting in the |
| dst register is not correct given then we cannot just invert the add |
| to a sub or vice versa. As a fix, perform the final bitwise and-op |
| unconditionally into AX from the off_reg, then move the pointer from |
| the src to dst and finally use AX as the source for the original |
| pointer arithmetic operation such that the inversion yields a correct |
| result. The single non-AX mov in between is possible given constant |
| blinding is retaining it as it's not an immediate based operation. |
| |
| The Linux kernel CVE team has assigned CVE-2021-46974 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 4.14.113 with commit ae03b6b1c880a03d4771257336dc3bca156dd51b and fixed in 4.14.233 with commit 4d542ddb88fb2f39bf7f14caa2902f3e8d06f6ba |
| Issue introduced in 4.19.19 with commit f92a819b4cbef8c9527d9797110544b2055a4b96 and fixed in 4.19.190 with commit 0e2dfdc74a7f4036127356d42ea59388f153f42c |
| Issue introduced in 5.0 with commit 979d63d50c0c0f7bc537bf821e056cc9fe5abd38 and fixed in 5.4.117 with commit 53e0db429b37a32b8fc706d0d90eb4583ad13848 |
| Issue introduced in 5.0 with commit 979d63d50c0c0f7bc537bf821e056cc9fe5abd38 and fixed in 5.10.35 with commit 2cfa537674cd1051a3b8111536d77d0558f33d5d |
| Issue introduced in 5.0 with commit 979d63d50c0c0f7bc537bf821e056cc9fe5abd38 and fixed in 5.11.19 with commit 6eba92a4d4be8feb4dc33976abac544fa99d6ecc |
| Issue introduced in 5.0 with commit 979d63d50c0c0f7bc537bf821e056cc9fe5abd38 and fixed in 5.12.2 with commit 7cf64d8679ca1cb20cf57d6a88bfee79a0922a66 |
| Issue introduced in 5.0 with commit 979d63d50c0c0f7bc537bf821e056cc9fe5abd38 and fixed in 5.13 with commit b9b34ddbe2076ade359cd5ce7537d5ed019e9807 |
| Issue introduced in 4.20.6 with commit 078da99d449f64ca04d459cdbdcce513b64173cd |
| |
| 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-2021-46974 |
| 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: |
| kernel/bpf/verifier.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/4d542ddb88fb2f39bf7f14caa2902f3e8d06f6ba |
| https://git.kernel.org/stable/c/0e2dfdc74a7f4036127356d42ea59388f153f42c |
| https://git.kernel.org/stable/c/53e0db429b37a32b8fc706d0d90eb4583ad13848 |
| https://git.kernel.org/stable/c/2cfa537674cd1051a3b8111536d77d0558f33d5d |
| https://git.kernel.org/stable/c/6eba92a4d4be8feb4dc33976abac544fa99d6ecc |
| https://git.kernel.org/stable/c/7cf64d8679ca1cb20cf57d6a88bfee79a0922a66 |
| https://git.kernel.org/stable/c/b9b34ddbe2076ade359cd5ce7537d5ed019e9807 |