Description
In the Linux kernel, the following vulnerability has been resolved:

bpf: backtracking shouldn't clear outer frame R1-R5 for callbacks

When processing calls to bpf_loop() verifier marks R1 (and R4) as
precise. R1 tracks loop iterations number and because of the
'callback_depth < R1' mechanics in check_helper_call() must be marked
precise. However, precision propagation for R1 was broken,
when bpf_loop() call was verified on a second iteration.

Consider the following verification trace:
- main: bpf_loop(nr_loops, callback ...)
- callback: BPF_EXIT
- main: bpf_loop(nr_loops, callback ...)
- ...

While the first visit of the call to bpf_loop() propagated R1
precision as expected, the second call to mark_chain_precision() in
the check_helper_call() set R1, but it was immediately reset when
backtrack_insn() processed preceding BPF_EXIT in the loop deleted in
this patch.

Because of that, the second visit of the call to bpf_loop() injected
checkpoint with R1 not marked as precise. Which could trick the
verifier into accepting unsafe programs. See the next patch for an
example of such program.

Commit is structured in a way to minimize conflicts when
'bpf' would be eventually merged with 'bpf-next'.
Published: 2026-09-25
Score: n/a
EPSS: n/a
KEV: No
Impact: Potential acceptance of unsafe eBPF programs
Action: Apply Patch
AI Analysis

Impact

The Linux kernel’s bpf loop verifier suffered a logic flaw that caused precision propagation for register R1 to be incorrectly reset during backtracking of callbacks. Because R1 tracks loop iteration counts, the verifier could mistakenly accept programs that were actually unsafe, creating a risk of arbitrary code execution within eBPF contexts. The weakness originates from an improper algorithmic handling of precision metadata in the verifier, allowing malicious eBPF programs to bypass safety checks. This flaw represents a significant threat to kernel integrity and user data confidentiality.

Affected Systems

The vulnerability affects all Linux installations that include the default bpf subsystem in the Linux kernel, regardless of distribution. It is not tied to a specific kernel version in the provided data; however, the patch that resolves the issue has already been applied to stable branches and will be present in newer releases.

Risk and Exploitability

The CVSS score is not supplied, so the severity is not quantified, but the flaw enables the verifier to accept unsafe programs, indicating a high conceptual impact. No EPSS score is available, suggesting the exploitation probability is unclear and likely low until a public exploit is discovered. The vulnerability is not listed in the CISA KEV catalog, meaning it is not currently a known exploited vulnerability. Attackers would need to craft a specially crafted eBPF program that relies on the verifier’s incorrect precision handling, implying the attack vector is specialized but potentially feasible for an attacker with deep kernel knowledge.

Generated by OpenCVE AI on September 25, 2026 at 16:12 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a kernel version that includes the bpf verifier fix; update to the latest stable kernel release.
  • If a system cannot be updated immediately, disable the bpf loop verifier by setting CONFIG_BPF_JIT to 'n' to restrict eBPF functionality until a patch is applied.
  • Verify that user-supplied eBPF programs are validated by a trusted host: use seccomp or custom gateway to filter eBPF code before loading into the kernel.

Generated by OpenCVE AI on September 25, 2026 at 16:12 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 25 Sep 2026 16:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-730

Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: bpf: backtracking shouldn't clear outer frame R1-R5 for callbacks When processing calls to bpf_loop() verifier marks R1 (and R4) as precise. R1 tracks loop iterations number and because of the 'callback_depth < R1' mechanics in check_helper_call() must be marked precise. However, precision propagation for R1 was broken, when bpf_loop() call was verified on a second iteration. Consider the following verification trace: - main: bpf_loop(nr_loops, callback ...) - callback: BPF_EXIT - main: bpf_loop(nr_loops, callback ...) - ... While the first visit of the call to bpf_loop() propagated R1 precision as expected, the second call to mark_chain_precision() in the check_helper_call() set R1, but it was immediately reset when backtrack_insn() processed preceding BPF_EXIT in the loop deleted in this patch. Because of that, the second visit of the call to bpf_loop() injected checkpoint with R1 not marked as precise. Which could trick the verifier into accepting unsafe programs. See the next patch for an example of such program. Commit is structured in a way to minimize conflicts when 'bpf' would be eventually merged with 'bpf-next'.
Title bpf: backtracking shouldn't clear outer frame R1-R5 for callbacks
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-25T10:24:19.881Z

Reserved: 2026-09-25T10:19:56.075Z

Link: CVE-2026-98084

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:37.980

Modified: 2026-09-25T11:17:37.980

Link: CVE-2026-98084

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T16:15:16Z

Weaknesses