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

bpf: Reject tail calls directly from callback frames

A tail call from a non-zero frame is modeled as a return from that frame.
The verifier makes R0 unknown and calls prepare_func_exit() for the taken
branch.

When the current frame is a synchronous callback, prepare_func_exit()
enforces the callback return-value contract and marks R0 precise. Since the
tail-call path synthesized R0 rather than deriving it from an instruction,
precision backtracking reaches the callback-calling instruction with R0
still requested and triggers the "callback unexpected regs" verifier bug.
A CAP_BPF task can therefore cause a WARN and an -EFAULT BPF_PROG_LOAD.

Tail calls reachable from callbacks are already rejected later by
check_max_stack_depth(). Reject a tail call made directly by a callback
before constructing the inconsistent return state, using the existing
diagnostic. Tail calls from ordinary subprograms keep their current
behavior.
Published: 2026-09-25
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

A vulnerable BPF verifier path allows a BPF program loaded with CAP_BPF to internally perform a tail call directly from a synchronous callback frame. The verifier mistakenly treats that tail call as a return, leading to an inconsistent register state. This causes the verifier to trigger a warning and ultimately fail the program load with an EFAULT. The failure disables the intended BPF functionality, resulting in a denial of service for any processes that depend on the program. The issue stems from improper register handling (CWE‑617).

Affected Systems

All Linux kernel installations that include the BPF verifier logic prior to the patch are susceptible. The advisory does not list exact kernel versions, so any current or older revision may harbor the flaw until updated. System administrators should suspect all kernels running the BPF subsystem have the potential vulnerability and should assess their installed kernels against the patch status.

Risk and Exploitability

The CVSS base score for the flaw is 5.5 and the EPSS score is below 1 %, indicating a relatively low probability of exploitation. The vulnerability requires the CAP_BPF privilege, which is typically granted only by privileged users or services. Thus the attack surface is confined to local attackers with sufficient rights. The flaw is not marked in the CISA KEV catalog. While exploitation would not provide code execution, it can cause a denial of service for applications relying on BPF programs.

Generated by OpenCVE AI on September 30, 2026 at 13:45 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply a Linux kernel update that incorporates the BPF verifier fix.
  • If an upgrade cannot be performed immediately, monitor system logs for WARN and EFAULT entries related to BPF_PROG_LOAD and temporarily block BPF program loading.
  • Review custom BPF code to remove tail calls invoked directly from callback frames, and use check_max_stack_depth() or other safeguards.

Generated by OpenCVE AI on September 30, 2026 at 13:45 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 30 Sep 2026 09:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-665

Tue, 29 Sep 2026 13:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-617
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Low


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

Type Values Removed Values Added
Weaknesses CWE-665

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: Reject tail calls directly from callback frames A tail call from a non-zero frame is modeled as a return from that frame. The verifier makes R0 unknown and calls prepare_func_exit() for the taken branch. When the current frame is a synchronous callback, prepare_func_exit() enforces the callback return-value contract and marks R0 precise. Since the tail-call path synthesized R0 rather than deriving it from an instruction, precision backtracking reaches the callback-calling instruction with R0 still requested and triggers the "callback unexpected regs" verifier bug. A CAP_BPF task can therefore cause a WARN and an -EFAULT BPF_PROG_LOAD. Tail calls reachable from callbacks are already rejected later by check_max_stack_depth(). Reject a tail call made directly by a callback before constructing the inconsistent return state, using the existing diagnostic. Tail calls from ordinary subprograms keep their current behavior.
Title bpf: Reject tail calls directly from callback frames
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-10-19T09:13:09.930Z

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

Link: CVE-2026-98061

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Undergoing Analysis

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

Modified: 2026-10-19T10:18:00.497

Link: CVE-2026-98061

cve-icon Redhat

Severity : Low

Publid Date: 2026-09-25T00:00:00Z

Links: CVE-2026-98061 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-30T14:00:07Z

Weaknesses