In short: Branch Target Reuse is a new Spectre variant that recovered a root password hash from a fully patched system, which matters most on shared infrastructure. Check whether your server has the Spectre fixes being rolled out.
Table of Contents
Researchers recovered a root password hash from a fully patched Intel system in minutes, with every default protection turned on. The attack behind it, called Branch Target Reuse (BTR), is a new variant of the Spectre v2 family of CPU speculative-execution flaws, disclosed September 29, 2026 by Sander Wiebing, Yuhui Zhu, Alessandro Biondi, and Cristiano Giuffrida of VUSec and Scuola Superiore Sant’Anna. It doesn’t target a specific piece of software so much as a gap in how modern CPUs handle their own branch prediction, which is why it reaches across browsers, language runtimes, and the Linux kernel at once.
How This Spectre Variant (BTR) Works
Modern CPUs predict which instruction a branch will jump to next, speculatively executing ahead of that guess to save time. When code changes, say a Just-In-Time (JIT) compiler recompiling a function, the CPU restores correct behavior for the actual instructions. What it doesn’t reliably do is forget the old branch prediction entries tied to that memory address. BTR abuses exactly that gap: it reuses a code address after the JIT has modified or replaced what lives there, so the CPU’s stale prediction still points at the old, now-invalid target. Redirecting execution to that architecturally invalid entry point creates what the researchers describe as a speculative execute-after-free primitive, letting an attacker disclose memory contents that should never be readable.
The practical significance of this is narrower than it sounds but still serious: VUSec calls it the first practical in-place Spectre-v2 attack that uses the same indirect branch for both the training phase (teaching the CPU a false prediction) and the testing phase (exploiting it), which is what let it slip past defenses built around the assumption those two phases look different.
What It Actually Leaks
The proof-of-concept targets JIT engines specifically: SpiderMonkey (Firefox’s JavaScript engine), GraalVM, and the Linux kernel’s own cBPF JIT, which compiles packet-filtering and tracing programs. In the kernel case, the demonstrated result was recovering a root password hash from a system running fully patched, default-configuration software. That’s not a browser sandbox escape or a theoretical memory-disclosure bound; it’s a concrete, sensitive secret pulled off a machine that had every currently available protection enabled.
Why Existing Spectre Defenses Didn’t Stop It
The Spectre family has accumulated years of mitigations since 2018, and BTR specifically bypasses two of the more recent ones: the Training Solo defenses tracked as CVE-2024-28956 and CVE-2025-24495. Those mitigations assumed an attacker needed a separate, attacker-controlled branch to train the predictor before hitting the victim branch. BTR doesn’t need that; reusing the same branch after the underlying code changes is enough. Hardware-level controls like Intel’s Indirect Branch Tracking (IBT) and Arm’s Branch Target Identification (BTI) make exploitation harder, narrowing which gadgets an attacker can land on, but neither fully prevents it.
Eight years is a long time for a bug class to keep producing genuinely new angles of attack. Spectre v1 and v2 were first disclosed in January 2018, and the industry’s answer since then has been a steady accumulation of narrow, targeted patches rather than one structural fix, because fully disabling speculative execution would cost too much raw CPU performance to be practical. BTR is the latest evidence that this patch-by-patch approach keeps leaving gaps that a sufficiently determined research team can find. That’s not a reason to panic about any single CVE in isolation, but it is a reason to treat “my kernel is patched” as a snapshot of today’s known attacks, not a permanent guarantee.
What’s Being Patched
The Linux kernel has shipped and backported fixes tracked as CVE-2026-64507 and CVE-2026-64508, which add an Indirect Branch Prediction Barrier (IBPB) flush specifically when BPF JIT memory gets reused, so a newly allocated JIT region can’t inherit stale predictions from whatever used to occupy that memory. GraalVM’s response is to randomize where its JIT code cache lives in memory, making the reused-address condition harder for an attacker to set up reliably. Mozilla is prioritizing Firefox’s site isolation work over an IBPB-based fix, which trades a narrower guarantee (cross-site data can’t leak into the same process) for one that doesn’t depend on getting every JIT edge case right.
Why This Matters More on Shared Infrastructure
Speculative-execution flaws in this family are exactly why “shared” and “dedicated” mean something concrete in server hosting, not just a price tier. BTR itself is demonstrated as an in-process attack, a JIT-compiled program reading memory it shouldn’t on the same machine, not as a cross-virtual-machine hypervisor escape. But it extends the same underlying class of CPU behavior (speculative execution leaking data across a boundary the CPU itself was supposed to enforce) that originally motivated dedicated-CPU hosting as a security posture, not just a performance one.
On a standard multi-tenant VPS, multiple customers’ workloads can share physical CPU cores, and a sufficiently serious processor-level flaw raises the question of what a neighboring tenant’s process could theoretically observe. A dedicated-CPU VPS, where physical cores are reserved to a single customer rather than scheduled across several, removes that specific class of shared-neighbor exposure by design, independent of whatever software patches a given kernel version has or hasn’t received yet.
That doesn’t make dedicated CPU hosting a silver bullet against every CPU flaw. Kernel-level patching still matters regardless of tenancy model, since BTR’s kernel cBPF demonstration doesn’t require a second tenant at all to be dangerous. But for businesses weighing whether tenancy model is worth paying for, this is a concrete, current example of the risk category that distinction actually addresses.
Checking and Patching Your Own Server
If you manage your own Linux server, start by checking your running kernel version with “uname -r” and comparing it against your distribution’s changelog for CVE-2026-64507 and CVE-2026-64508. On Debian or Ubuntu, “apt update && apt list –upgradable” followed by a normal “apt upgrade” pulls in a backported fix once your distribution has shipped one; on RHEL, AlmaLinux, or Rocky, “dnf update kernel” does the equivalent. The detail that trips people up: a kernel package update does not take effect until the system reboots into the new kernel, so an update that completes without a restart has not actually closed the gap yet.
Schedule that reboot deliberately rather than assuming the patch applied the moment the package manager reported success. If you’re not comfortable managing kernel updates yourself, this is one of the concrete things a managed hosting plan is handling on your behalf without you needing to track individual CVE numbers.
Don’t stop at the kernel. If your server also runs Node.js for an application backend, “node –version” tells you what you’re on, and it’s worth checking that version against Node’s own security release notes rather than assuming the OS-level kernel patch covers the JIT engine Node embeds internally. The same logic applies to any self-hosted service built on a JIT runtime: the kernel fix and the application runtime fix are two separate patches shipped by two separate projects, and treating one as a substitute for the other is how a server ends up half-patched without anyone realizing it.
What to Do About It
If you manage your own Linux server, whether VPS or dedicated, confirm your kernel has picked up CVE-2026-64507 and CVE-2026-64508 through your distribution’s normal update channel; most mainstream distributions back-port kernel security fixes faster than you’d get by waiting for the next major version. If your business runs anything through Node.js, Firefox, or another JIT-reliant runtime on that server, keep those updated independently of the OS kernel, since the mitigations here are landing separately across the stack rather than in one place.
And if you’re currently on standard shared VPS hosting and handle anything where cross-tenant CPU exposure would be a real concern, like processing customer payment data or hosting multiple client sites with different trust levels, a VPS plan with dedicated CPU cores, from a provider that offers one, is worth a real look rather than treating tenancy model as a performance-only decision.
Source: The Hacker News, with additional technical detail from VUSec’s BTR research page.

