CVE Catalog

CVE-2026-98007

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel BPF subsystem, bpf_loop() declares its nr_loops argument as ARG_ANYTHING, allowing privileged programs to pass pointer values. Since commit bb124da69c47 the verifier marks R1 precise and reads its upper bound, but precision backtracking only accepts scalar registers, triggering a "backtracking misuse" warning and a panic when panic_on_warn is enabled. The fix introduces ARG_SCALAR and uses it for nr_loops.

Risk Assessment

A privileged BPF program can trigger a verifier warning and, with panic_on_warn enabled, cause a kernel panic and denial of service. This requires the ability to load BPF programs.

Recommendation

Update the Linux kernel to a version containing the fix. Consider disabling panic_on_warn if not required, and restrict BPF program loading to trusted entities.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS