CVE-2025-38586

Summary

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.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux5d4fa9ec5643a5c75d3c1e6abf50fb9284caf1ff < 0dbef493cae7d451f740558665893c000adb2321affected
LinuxLinux5d4fa9ec5643a5c75d3c1e6abf50fb9284caf1ff < e23184725dbb72d5d02940222eee36dbba2aa422affected
LinuxLinux5d4fa9ec5643a5c75d3c1e6abf50fb9284caf1ff < 1ce30231e0a2c8c361ee5f8f7f265fc17130adceaffected
LinuxLinux5d4fa9ec5643a5c75d3c1e6abf50fb9284caf1ff < b114fcee766d5101eada1aca7bb5fd0a86c89b35affected
LinuxLinux6.12affected
LinuxLinux0 < 6.12unaffected
LinuxLinux6.12.42 <= 6.12.*unaffected
LinuxLinux6.15.10 <= 6.15.*unaffected
LinuxLinux6.16.1 <= 6.16.*unaffected
LinuxLinux6.17 <= *unaffected

Weaknesses

References