High · published August 19, 2025
In the Linux kernel, the following vulnerability has been resolved:
bpf, arm64: Fix fp initialization for exception boundary
In the ARM64 BPF JIT when prog->aux->exception_boundary is set for a BPF
program, find_used_callee_regs() is not called because for a program
acting as exception boundary, all callee saved registers are saved.
find_used_callee_regs() sets `ctx->fp_used = true;` when it sees FP
being used in any of the instructions.
For programs acting as exception boundary, ctx->fp_used remains false
even if frame pointer is used by the program and therefore, FP is not
set-up for such programs in the prologue. This can cause the kernel to
crash due to a pagefault.
Fix it by setting ctx->fp_used = true for exception boundary programs as
fp is always saved in such programs.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 6.12, < 6.12.42 | 6.12.42 |
| linux/linux_kernel | ≥ 6.13, < 6.15.10 | 6.15.10 |
| linux/linux_kernel | ≥ 6.16, < 6.16.1 | 6.16.1 |