bpf: backtrack_insn(): Handle ld_{abs,ind} subprog exit edge
- 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.6.160, 6.12.114, 6.18.57, 5.11, 5.16, and 3 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: backtrack_insn(): Handle ld_{abs,ind} subprog exit edge Nicholas Carlini reported a bug in precision backtracking mechanism for BPF_LD | BPF_{IND,ABS} instructions. These instructions are modelled as two branches: • fallthrough; • implicit exit from current subprogram. The implicit exit case was not handled by the backtrack_insn() function. When backtracking such a path backtrack_insn() did not call bt_subprog_enter(), which meant that backtracking continued manipulating precision marks in a caller frame, while looking at instructions in a callee frame. This lead to segmentation faults during verification (see the selftest), or unsound state pruning.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 37ad2bb11e9de92cb7b94548705eeedd87f7d392 · fixed in 19cca7c36055906b3cff3e297618ee8a50cde25d; From 8674e2db06cff6b50f2216eed9a761d15425bb34 · fixed in 12c064bcfa56e3631be9f5336ee113b7f849959a; From ce01a4e5cfac7adbe0be565f90cd32ecbb2f8337 · fixed in a0cd9e22f8faed30a8da8be357c51bd8b3074ee9; From ee861486e377edc55361c08dcbceab3f6b6577bd · fixed in 671b7b9a660ef15b25faa3df161205b9dc8d1eb2; From ee861486e377edc55361c08dcbceab3f6b6577bd · fixed in 387b1baefbb776e3f48dc2261e77a49213f470f7; From 6.6.148 · fixed in 6.6.160; From 6.12.101 · fixed in 6.12.114; From 6.18.42 · fixed in 6.18.57; From 5.10.265 · fixed in 5.11; From 5.15.216 · fixed in 5.16; From 6.1.183 · fixed in 6.2; From 7.0.10 · fixed in 7.1
- Linux Linux
7.1
- KernelLinux
fixed in 6.6.160; From 6.7.0 · fixed in 6.12.114; From 6.13.0 · fixed in 6.18.57; From 6.19.0 · fixed in 7.2.7