Branch Target Reuse (BTR) is een Spectre-v2-aanvalstechniek waarbij een verouderde branchvoorspelling naar hergebruikte JIT-code kan wijzen. VUSec meldt twee proof-of-concept-exploits voor de Linux-kernel; de beschreven exploit voor de klassieke BPF-JIT (cBPF-JIT) lekt 8 bytes per seconde op moderne Intel-processors.
Wat is Branch Target Reuse?
BTR maakt misbruik van een combinatie van just-in-time-compilatie en indirecte branchvoorspelling. Een JIT-engine zet code tijdens het uitvoeren om in machinecode. De processor slaat voorspellingen over indirecte sprongen op in de Branch Target Buffer (BTB), een buffer met voorspelde sprongdoelen.
Volgens VUSec kan zo’n voorspelling blijven bestaan nadat JIT-code is vrijgegeven. Als een nieuw codeblok vervolgens hetzelfde geheugengebied gedeeltelijk hergebruikt, kan de processor bij een volgende sprong speculatief naar een verouderd doel springen. Speculatieve uitvoering is werk dat de processor alvast uitvoert op basis van een voorspelling, voordat vaststaat dat die voorspelling klopt. Als de oude BTB-vermelding bewaard blijft én wordt gekozen, kan de uitvoering op een verkeerde positie in de nieuwe code terechtkomen en gegevens lekken.
Wat VUSec meldt over Linux-cBPF
VUSec meldt twee end-to-end proof-of-concept-exploits voor de Linux-kernel en beschrijft een exploit met cBPF-programma’s die als seccomp-filters zijn geïnstalleerd. Voor die specifieke exploit rapporteert de onderzoeksgroep een leksnelheid van 8 bytes per seconde op moderne Intel-processors.
VUSec beschrijft ook een demonstratie waarbij de hash van het rootwachtwoord uit het su-proces werd teruggehaald. Daarvoor startte de demonstratie eerst su root, zodat de hash in het geheugen stond. De gemelde leksnelheid hoort bij de beschreven cBPF-exploit; het is geen algemene snelheid voor Linux of voor andere JIT-engines.
SpiderMonkey en GraalVM leverden andere resultaten op
VUSec onderzocht naast de Linux-cBPF-JIT ook SpiderMonkey, de JavaScript-engine van Firefox, en GraalVM. Voor SpiderMonkey meldt de groep haalbare aanvallen en een proof of concept, met een geschatte leksnelheid van tientallen bytes per seconde op Intel-processors. Een volledige end-to-endbrowserexploit vereist volgens VUSec verder werk.
Bij GraalVM bereikten de onderzoekers stabiel hergebruik van geheugenadressen en speculatieve toegang voorbij een masking-operatie. In hun experimenten verwijderden compilatie en garbage collection de BTB-vermeldingen voordat die konden worden benut. VUSec beschrijft daarnaast dat Oracle hergebruik van JIT-regio’s tegengaat door de locaties van de codecache te randomiseren.
VUSec meldt ook dat Mozilla IBPB-maatregelen overwoog, met de afronding en uitrol van site-isolation als prioriteit.
De door VUSec beschreven Linux-mitigatie
Volgens VUSec is een x86-mitigatie upstream in de Linux-kernel opgenomen. Wanneer een cBPF-programma een eerder gebruikte cBPF- of eBPF-JIT-regio opnieuw benut, voert de maatregel op alle cores een Indirect Branch Prediction Barrier (IBPB) uit en ontmoedigt de kernel dat hergebruik. VUSec zegt dat de maatregel geldt met of zonder Indirect Branch Tracking (IBT).
VUSec koppelt het Linux-mitigatiewerk aan CVE-2026-64507 en CVE-2026-64508.