kernel/bpf/verifier.c in the Linux kernel through 5.12.7 enforces incorrect limits for pointer arithmetic operations, aka CID-bb01a1bba579. This can be abused to perform out-of-bounds reads and writes in kernel memory, leading to local privilege escalation to root. In particular, there is a corner case where the off reg causes a masking direction change, which then results in an incorrect final aux->alu_limit.
| Software | From | Fixed in |
|---|---|---|
| linux / linux_kernel | 5.4.116 | 5.4.123 |
| linux / linux_kernel | 5.10.33 | 5.10.41 |
| linux / linux_kernel | 5.11.17 | 5.12.8 |
| fedoraproject / fedora | 33 | 33.x |
| fedoraproject / fedora | 34 | 34.x |