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

bpf: Make post-verification instruction rewrites killable

After do_check() returns, the verifier runs several instruction rewrite
passes. Some of them patch or remove one instruction at a time. Each
operation moves the remaining instruction and auxiliary-data arrays and
adjusts all branch offsets, making the overall work quadratic in the
program length.

A privileged loader can submit 131072 unconditional jumps by zero followed
by a valid return. Verification finishes quickly, but bpf_opt_remove_nops()
then spends a long time removing each jump separately. Since this
post-verification work neither checks for signals nor reschedules, a pending
SIGKILL cannot terminate the task until the rewrite finishes.

Make bpf_patch_insn_data() and verifier_remove_insns() common cancellation
and rescheduling points. These helpers run from BPF_PROG_LOAD process
context, and bpf_patch_insn_data() can already sleep while reallocating
auxiliary data.

Report interrupted constant blinding as -EINTR and propagate it through
both JIT paths, including kernels that permit interpreter fallback.
Other blinding failures retain the existing fallback behavior.

This does not reduce the quadratic cost of the rewrite passes, but it makes
the work preemptible and allows a killed loader to be torn down promptly.
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Denial of Service due to unkillable resource exhaustion
Action: Patch Immediately
AI Analysis

Impact

The verified BPF loader performs post‑verification instruction rewrites that can take O(n²) time. A privileged process can submit a program that contains 131,072 no‑op jumps followed by a return. Verification completes quickly, but the rewrite passes then iterate over each no‑op, allocating and moving auxiliary data. Because this work never checks for signals or reschedules, a SIGKILL sent after load cannot terminate the process until all rewrites finish, effectively blocking the kernel from responding to user requests and potentially causing a denial of service.

Affected Systems

The flaw exists in the Linux kernel BPF subsystem, affecting any system that allows privileged users to load eBPF programs. All kernel versions that have not applied the patch in the advisory are vulnerable. The issue is limited to the verifier path; kernel builds that disable BPF or restrict verifiable programs to unprivileged contexts are not impacted.

Risk and Exploitability

No CVSS score is currently published, and the EPSS score is unavailable. The vulnerability is listed as not in CISA KEV. Because the attack requires privileged access to load a malformed BPF program, the exploitability is restricted to systems with users who can run privileged bpf_prog_load calls. Nevertheless, the high runtime cost and lack of preemption can be leveraged by an attacker holding such privileges to exhaust CPU cycles and prevent task termination, leading to a denial‑of‑service condition.

Generated by OpenCVE AI on October 18, 2026 at 18:18 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the kernel to a version that contains the patch for the BPF verifier rewrite cancellation.
  • If a kernel upgrade cannot be performed immediately, limit the size of BPF programs that privileged users can load, for example by reducing the maximum program length or the number of allowed instructions.
  • Disable or restrict privileged loading of BPF programs in critical environments until the kernel is patched, or use kernel configuration options that limit the verifier’s workload.

Generated by OpenCVE AI on October 18, 2026 at 18:18 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 18 Oct 2026 18:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-399
CWE-770

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: bpf: Make post-verification instruction rewrites killable After do_check() returns, the verifier runs several instruction rewrite passes. Some of them patch or remove one instruction at a time. Each operation moves the remaining instruction and auxiliary-data arrays and adjusts all branch offsets, making the overall work quadratic in the program length. A privileged loader can submit 131072 unconditional jumps by zero followed by a valid return. Verification finishes quickly, but bpf_opt_remove_nops() then spends a long time removing each jump separately. Since this post-verification work neither checks for signals nor reschedules, a pending SIGKILL cannot terminate the task until the rewrite finishes. Make bpf_patch_insn_data() and verifier_remove_insns() common cancellation and rescheduling points. These helpers run from BPF_PROG_LOAD process context, and bpf_patch_insn_data() can already sleep while reallocating auxiliary data. Report interrupted constant blinding as -EINTR and propagate it through both JIT paths, including kernels that permit interpreter fallback. Other blinding failures retain the existing fallback behavior. This does not reduce the quadratic cost of the rewrite passes, but it makes the work preemptible and allows a killed loader to be torn down promptly.
Title bpf: Make post-verification instruction rewrites killable
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-18T15:19:49.746Z

Reserved: 2026-09-25T10:25:14.361Z

Link: CVE-2026-98628

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:15.860

Modified: 2026-10-18T16:17:15.860

Link: CVE-2026-98628

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-18T18:30:14Z

Weaknesses
  • CWE-399
  • CWE-770

    Allocation of Resources Without Limits or Throttling