CVE-2021-3490
Linux kernel eBPF bitwise ops ALU32 bounds tracking
In short
A flaw in the Linux kernel's eBPF verifier failed to properly track 32-bit bounds during bitwise operations (AND, OR, XOR), allowing attackers to write or read memory outside intended boundaries and potentially execute arbitrary code.
Technical detail
The eBPF ALU32 verifier did not correctly update 32-bit register bounds after bitwise operations, enabling out-of-bounds memory access. An attacker with eBPF program load capability can craft a malicious eBPF program to bypass bounds checks and achieve kernel code execution.
Summary generated and translated by AI from the official description.
The eBPF ALU32 bounds tracking for bitwise ops (AND, OR and XOR) in the Linux kernel did not properly update 32-bit bounds, which could be turned into out of bounds reads and writes in the Linux kernel and therefore, arbitrary code execution. This issue was fixed via commit 049c4e13714e ("bpf: Fix alu32 const subreg bound tracking on bitwise operations") (v5.13-rc4) and backported to the stable kernels in v5.12.4, v5.11.21, and v5.10.37. The AND/OR issues were introduced by commit 3f50f132d840 ("bpf: Verifier, do explicit ALU32 bounds tracking") (5.7-rc1) and the XOR variant was introduced by 2921c90d4718 ("bpf:Fix a verifier failure with xor") ( 5.10-rc1).
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
Affected products
Linux · Linux kernelWant to know if your infrastructure is exposed to this?
Talk to TrueHacking →References
http://packetstormsecurity.com/files/164015/Linux-eBPF-ALU32-32-bit-Invalid-Bounds-Tracking-Local-Privilege-Escalation.htmlhttps://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git/commit/?id=049c4e13714ecbca567b4d5f6d563f05d431c80ehttps://security.netapp.com/advisory/ntap-20210716-0004/https://ubuntu.com/security/notices/USN-4949-1https://ubuntu.com/security/notices/USN-4950-1https://www.openwall.com/lists/oss-security/2021/05/11/11https://www.zerodayinitiative.com/advisories/ZDI-21-606/