bpf, arm64: Fix fp initialization for exception boundary
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.12.42, 6.15.10, 6.16.1
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
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.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 5d4fa9ec5643a5c75d3c1e6abf50fb9284caf1ff · fixed in 0dbef493cae7d451f740558665893c000adb2321; From 5d4fa9ec5643a5c75d3c1e6abf50fb9284caf1ff · fixed in e23184725dbb72d5d02940222eee36dbba2aa422; From 5d4fa9ec5643a5c75d3c1e6abf50fb9284caf1ff · fixed in 1ce30231e0a2c8c361ee5f8f7f265fc17130adce; From 5d4fa9ec5643a5c75d3c1e6abf50fb9284caf1ff · fixed in b114fcee766d5101eada1aca7bb5fd0a86c89b35
- Linux Linux
6.12
- KernelLinux
From 6.12.0 · fixed in 6.12.42; From 6.13.0 · fixed in 6.15.10; From 6.16.0 · fixed in 6.16.1