CVE-2026-98628: bpf: Make post-verification instruction rewrites killable

Published Oct 18, 2026
·
Updated

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

bpf: Make post-verification instruction rewrites killable

After docheck() 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 bpfoptremovenops() 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 bpfpatchinsndata() and verifierremoveinsns() common cancellation and rescheduling points. These helpers run from BPFPROGLOAD process context, and bpfpatchinsndata() 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.

Affected Software

1 affected component
Linux Linux kernel

Event History

Oct 18, 2026
CVE Published
via MITRE·03:19 PM
Data Sourced
via MITRE·03:19 PM
Description
Data Sourced
via NVD·04:17 PM
Description

Frequently Asked Questions

1

Who can trigger the resource-exhaustion condition?

A privileged BPF program loader can trigger it by submitting a program containing 131072 unconditional jump-by-zero instructions followed by a valid return. The issue occurs during post-verification instruction rewrite work in the BPF_PROG_LOAD process context.

2

What is the operational impact during exploitation?

The post-verification rewrite passes can take a long time because each removed instruction shifts remaining instruction and auxiliary-data arrays and adjusts branch offsets. Before the fix, this work did not check for signals or reschedule, so even a pending SIGKILL could not terminate the loader until rewriting completed.

3

What changes with the fix?

The affected rewrite helpers gain cancellation and rescheduling points, allowing long rewrite operations to respond to interruption and yield execution. Interrupted constant blinding is reported as -EINTR and propagated through both JIT paths, including kernels that allow interpreter fallback.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203