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

bpf: Support for hardening against JIT spraying

The BPF JIT allocator packs many small programs into larger executable
allocations and reuses space within those allocations as programs are
loaded and freed. When fresh code is written into space that a previous
program occupied, an indirect jump into the new program can reuse a branch
prediction left behind by the old one.

Flush the indirect branch predictors before reusing JIT memory so that
indirect jumps into a newly written program don't reuse predictions from an
old program that occupied the same space.

Introduce bpf_arch_pred_flush_enabled static key and bpf_arch_pred_flush
static call for flushing the branch predictors on JIT memory reuse.
Architectures that need a flush, can update it to a predictor flush
function. By default, its a NOP and does not emit any CALL.

Allocations larger than a pack are not covered by this flush. That is safe
because cBPF programs (the unprivileged attack surface) are bounded well
below a pack size. Issue a warning if this assumption is ever violated
while the flush is active.
Published: 2026-07-25
Score: 7.0 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel’s BPF Just‑In‑Time compiler allocates many small programs into large executable memory regions and then reuses those regions as programs are loaded and freed. When fresh code is written into an area previously occupied by another program, an indirect jump into the new program can use a branch‑prediction entry that was cached for the old program. This stale prediction can mislead the CPU into taking a different execution path, effectively allowing an attacker to redirect kernel execution. The vulnerability is rooted in improper handling of branch‑prediction state during memory reuse. The impact is the potential to execute arbitrary code at kernel privilege after a successful JIT‑spraying attack.

Affected Systems

All Linux kernel versions that expose the legacy BPF JIT allocator and do not have the hardening patch applied are affected. This includes mainstream distributions shipping the 6.x series kernels or older releases that still support legacy BPF JIT allocators. The patch that introduces branch‑predictor flushing is incorporated into mainline starting with commit 6e52c240c43a6; however, the actual activation depends on a static key 'bpf_arch_pred_flush_enabled', which must be enabled on architectures requiring a flush. Versions prior to this commit, or on systems where the key is left disabled, remain vulnerable.

Risk and Exploitability

The EPSS score is reported as < 1%, indicating the probability of observed exploitation is very low. The CVSS score of 7.0 reflects a moderate to high severity due to the potential for kernel code execution. Lack of inclusion in the CISA KEV catalog further suggests limited active exploitation. The attack requires knowledge of the kernel’s BPF JIT internals, the ability to craft a JIT‑spraying payload, and, in some cases, specific architectural support for branch‑predictor flushes. These conditions lower the likelihood of successful exploitation but the damage potential remains high if an attacker succeeds.

Generated by OpenCVE AI on August 3, 2026 at 18:25 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest kernel update that contains the BPF JIT hardening commit and enables branch‑predictor flushing for your architecture
  • Ensure the static key 'bpf_arch_pred_flush_enabled' is set to ON if your CPU requires a flush; otherwise set it to OFF to avoid stale predictions
  • If immediate kernel upgrade is impossible, disable BPF JIT entirely or limit BPF program sizes so that they never exceed the pack size handled by the allocator
  • Monitor kernel logs for warnings about 'pack size violation' which indicate potential residual risk

Generated by OpenCVE AI on August 3, 2026 at 18:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4724-1 linux-6.12 new package
Debian DSA Debian DSA DSA-6405-1 linux security update
History

Mon, 03 Aug 2026 18:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-264

Sun, 02 Aug 2026 12:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-665
CWE-784

Thu, 30 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Moderate


Sun, 26 Jul 2026 01:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-665
CWE-784

Sat, 25 Jul 2026 09:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: bpf: Support for hardening against JIT spraying The BPF JIT allocator packs many small programs into larger executable allocations and reuses space within those allocations as programs are loaded and freed. When fresh code is written into space that a previous program occupied, an indirect jump into the new program can reuse a branch prediction left behind by the old one. Flush the indirect branch predictors before reusing JIT memory so that indirect jumps into a newly written program don't reuse predictions from an old program that occupied the same space. Introduce bpf_arch_pred_flush_enabled static key and bpf_arch_pred_flush static call for flushing the branch predictors on JIT memory reuse. Architectures that need a flush, can update it to a predictor flush function. By default, its a NOP and does not emit any CALL. Allocations larger than a pack are not covered by this flush. That is safe because cBPF programs (the unprivileged attack surface) are bounded well below a pack size. Issue a warning if this assumption is ever violated while the flush is active.
Title bpf: Support for hardening against JIT spraying
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-07-27T04:37:46.726Z

Reserved: 2026-07-19T15:36:31.793Z

Link: CVE-2026-64508

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-07-25T10:17:36.920

Modified: 2026-07-27T05:16:55.600

Link: CVE-2026-64508

cve-icon Redhat

Severity : Moderate

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

Links: CVE-2026-64508 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T18:30:06Z

Weaknesses