bpf: Avoid __bpf_prog_ret0_warn when jit fails
- 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 4.10, 4.15, 5.15.186, 6.1.142, 6.6.94, and 2 more
- 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
Summary
In the Linux kernel, the following vulnerability has been resolved: bpf: Avoid __bpf_prog_ret0_warn when jit fails syzkaller reported an issue: WARNING: CPU: 3 PID: 217 at kernel/bpf/core.c:2357 __bpf_prog_ret0_warn+0xa/0x20 kernel/bpf/core.c:2357 Modules linked in: CPU: 3 UID: 0 PID: 217 Comm: kworker/u32:6 Not tainted 6.15.0-rc4-syzkaller-00040-g8bac8898fe39 RIP: 0010:__bpf_prog_ret0_warn+0xa/0x20 kernel/bpf/core.c:2357 Call Trace: <TASK> bpf_dispatcher_nop_func include/linux/bpf.h:1316 [inline] __bpf_prog_run include/linux/filter.h:718 [inline] bpf_prog_run include/linux/filter.h:725 [inline] cls_bpf_classify+0x74a/0x1110 net/sched/cls_bpf.c:105 ... When creating bpf program, 'fp->jit_requested' depends on bpf_jit_enable. This issue is triggered because of CONFIG_BPF_JIT_ALWAYS_ON is not set and bpf_jit_enable is set to 1, causing the arch to attempt JIT the prog, but jit failed due to FAULT_INJECTION. As a result, incorrectly treats the program as valid, when the program runs it calls `__bpf_prog_ret0_warn` and triggers the WARN_ON_ONCE(1).
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From fa9dd599b4dae841924b022768354cfde9affecb · fixed in e7fb4ebee6e900899d2b2e5852c3e2eafcbcad66; From fa9dd599b4dae841924b022768354cfde9affecb · fixed in ef92b96530d1731d9ac167bc7c193c683cd78fff; From fa9dd599b4dae841924b022768354cfde9affecb · fixed in 6f639c25bfad17d9fd7379ab91ff9678ea9aac85; From fa9dd599b4dae841924b022768354cfde9affecb · fixed in 2bc6dffb4b72d53d6a6ada510269bf548c3f7ae0; From fa9dd599b4dae841924b022768354cfde9affecb · fixed in 0b9bb52796b239de6792d0d68cdc6eb505ebff96; From fa9dd599b4dae841924b022768354cfde9affecb · fixed in 86bc9c742426a16b52a10ef61f5b721aecca2344; From 4.9.190 · fixed in 4.10; From 4.14.140 · fixed in 4.15
- Linux Linux
4.16
- KernelLinux
From 4.16.0 · fixed in 5.15.186; From 5.16.0 · fixed in 6.1.142; From 6.2.0 · fixed in 6.6.94; From 6.7.0 · fixed in 6.12.34; From 6.13.0 · fixed in 6.15.3