In the Linux kernel, the following vulnerability has been resolved: bpf: Support for hardening against JIT spraying The BPF JIT allocator packs many… (CVE-2026-64508)
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.
AI Analysis
Technical Summary
The Linux kernel's BPF JIT allocator packs multiple small programs into larger executable memory allocations and reuses space as programs are loaded and freed. Without flushing indirect branch predictors, indirect jumps into newly written programs could reuse branch prediction data from previously resident code, enabling a form of JIT spraying attack. The vulnerability is mitigated by introducing a static key and call to flush branch predictors on JIT memory reuse. Architectures requiring this flush can implement it, while others default to a no-operation. Allocations larger than a pack are not flushed, which is considered safe due to bounded sizes of unprivileged cBPF programs. A warning is issued if assumptions about program sizes are violated when the flush is active.
Potential Impact
This vulnerability could allow an attacker to exploit branch prediction reuse in the BPF JIT allocator, potentially facilitating JIT spraying attacks. Such attacks might undermine kernel security by enabling code reuse or bypassing certain mitigations. However, the fix has been implemented in the Linux kernel to flush branch predictors on JIT memory reuse, reducing the risk. There are no known exploits in the wild at this time.
Mitigation Recommendations
A fix has been implemented in the Linux kernel that flushes indirect branch predictors before reusing JIT memory, preventing reuse of stale branch predictions. This fix is architecture-dependent and applies to allocations within certain size bounds. Users should update to a Linux kernel version that includes this patch to ensure protection. Patch status is not explicitly stated in the provided data; therefore, check the official Linux kernel advisories or vendor updates for the exact fixed versions and apply them accordingly.
In the Linux kernel, the following vulnerability has been resolved: bpf: Support for hardening against JIT spraying The BPF JIT allocator packs many… (CVE-2026-64508)
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.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The Linux kernel's BPF JIT allocator packs multiple small programs into larger executable memory allocations and reuses space as programs are loaded and freed. Without flushing indirect branch predictors, indirect jumps into newly written programs could reuse branch prediction data from previously resident code, enabling a form of JIT spraying attack. The vulnerability is mitigated by introducing a static key and call to flush branch predictors on JIT memory reuse. Architectures requiring this flush can implement it, while others default to a no-operation. Allocations larger than a pack are not flushed, which is considered safe due to bounded sizes of unprivileged cBPF programs. A warning is issued if assumptions about program sizes are violated when the flush is active.
Potential Impact
This vulnerability could allow an attacker to exploit branch prediction reuse in the BPF JIT allocator, potentially facilitating JIT spraying attacks. Such attacks might undermine kernel security by enabling code reuse or bypassing certain mitigations. However, the fix has been implemented in the Linux kernel to flush branch predictors on JIT memory reuse, reducing the risk. There are no known exploits in the wild at this time.
Mitigation Recommendations
A fix has been implemented in the Linux kernel that flushes indirect branch predictors before reusing JIT memory, preventing reuse of stale branch predictions. This fix is architecture-dependent and applies to allocations within certain size bounds. Users should update to a Linux kernel version that includes this patch to ensure protection. Patch status is not explicitly stated in the provided data; therefore, check the official Linux kernel advisories or vendor updates for the exact fixed versions and apply them accordingly.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-667g-8hv2-vmxj
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-64508"]
- Ecosystems
- []
- Database Specific Severity
- null
- Cvss Version
- null
Threat ID: 6a6542069c2644c7f80820ad
Added to database: 07/25/2026, 23:08:54 UTC
Last enriched: 07/25/2026, 23:14:47 UTC
Last updated: 09/07/2026, 10:52:10 UTC
Views: 39
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.