Vulnerability · Published Feb 27, 2024 · Assigned by Linux
CVE-2021-46974bpf: Fix masking negation logic upon negative dst register
High 7.1
In plain English
A high-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 16% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official 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.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian:12 | linux | 5.10.38-1 | DEBIAN-CVE-2021-46974 |
| Debian:13 | linux | 5.10.38-1 | DEBIAN-CVE-2021-46974 |
| Debian:14 | linux | 5.10.38-1 | DEBIAN-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-allwinner-5.19 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-aws-5.19 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-aws-6.2 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-azure-5.19 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-azure-6.2 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-azure-fde-5.19 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-azure-fde-6.2 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-gcp-5.19 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-gcp-6.2 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-hwe-5.19 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-hwe-6.2 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-intel-iot-realtime | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-5.19 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-6.2 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-nvidia-6.2 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-oem-5.17 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-oem-6.0 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-oem-6.1 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:24.04:LTS | linux-raspi-realtime | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-realtime | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-riscv | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-riscv-5.19 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-starfive-5.19 | no fix listed | UBUNTU-CVE-2021-46974 |
| Ubuntu:22.04:LTS | linux-starfive-6.2 | no fix listed | UBUNTU-CVE-2021-46974 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | ae03b6b1c880a03d4771257336dc3bca156dd51b – before 4d542ddb88fb2f39bf7f14caa2902f3e8d06f6baf92a819b4cbef8c9527d9797110544b2055a4b96 – before 0e2dfdc74a7f4036127356d42ea59388f153f42c979d63d50c0c0f7bc537bf821e056cc9fe5abd38 – before 53e0db429b37a32b8fc706d0d90eb4583ad13848979d63d50c0c0f7bc537bf821e056cc9fe5abd38 – before 2cfa537674cd1051a3b8111536d77d0558f33d5d979d63d50c0c0f7bc537bf821e056cc9fe5abd38 – before 6eba92a4d4be8feb4dc33976abac544fa99d6ecc979d63d50c0c0f7bc537bf821e056cc9fe5abd38 – before 7cf64d8679ca1cb20cf57d6a88bfee79a0922a66979d63d50c0c0f7bc537bf821e056cc9fe5abd38 – before b9b34ddbe2076ade359cd5ce7537d5ed019e9807078da99d449f64ca04d459cdbdcce513b64173cd |
| Linux | Linux | 5.0 |
References
- 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