VUSec descrive Branch Target Reuse (BTR), un attacco Spectre v2 che sfrutta predizioni obsolete dei salti indiretti per raggiungere codice JIT riutilizzato. Nei test, il gruppo riferisce di aver realizzato due exploit end-to-end contro Linux cBPF e di aver recuperato l’hash della password di root dalla memoria di un processo su in esecuzione. L’hash non è la password in chiaro: per risalire alla password occorrerebbe decifrarlo, e la possibilità di riuscirci dipende dall’algoritmo di hashing e dalla robustezza della password. VUSec

Branch Target Reuse e l’hash recuperato su Linux

BTR prende di mira le predizioni dei salti indiretti, cioè le stime con cui il processore anticipa la destinazione di un ramo del codice. Se un motore JIT libera una porzione di codice ma in seguito riutilizza lo stesso indirizzo per generarne una nuova, una predizione precedente può restare nel processore. L’esecuzione speculativa può allora raggiungere il nuovo codice a un offset ormai obsoleto.

Il test Linux sfrutta programmi BPF classici (cBPF), installati come filtri seccomp e disponibili anche a programmi senza privilegi. VUSec riferisce di aver usato questo meccanismo per individuare e leggere un hash di root presente nella memoria di un processo su. Il risultato riguarda l’hash: non equivale alla compromissione automatica della password in chiaro.

Come le predizioni obsolete raggiungono il codice JIT riutilizzato

JIT è l’acronimo di compilazione just-in-time: il programma genera codice macchina mentre è in esecuzione. BTR sfrutta il fatto che il processore può conservare una destinazione prevista per un salto indiretto anche dopo che il codice associato è stato liberato. Se una nuova porzione di codice occupa lo stesso indirizzo, la predizione rimasta può indirizzare l’esecuzione speculativa verso quella porzione, in un punto diverso da quello previsto dal nuovo codice.

VUSec riferisce due exploit end-to-end su Linux cBPF: uno nella configurazione predefinita e un altro che aggira la constant blinding, una tecnica di protezione del JIT. Per quest’ultimo, i ricercatori hanno codificato dati controllati dall’attaccante negli offset dei salti in avanti.

Nel test Linux il flusso di lettura dei dati era di 8 byte al secondo. VUSec spiega che il pointer chasing, cioè seguire i puntatori in memoria, riduce la quantità di dati da leggere per raggiungere il segreto.

I risultati su Linux, SpiderMonkey e GraalVM

Le medie riferite dai ricercatori per il recupero end-to-end dell’hash sono state di 3 minuti su Raptor Cove e 5 minuti su Lion Cove. Questi tempi riguardano i due processori citati e il test Linux descritto.

Gli esperimenti sui motori JIT dei browser e dei runtime hanno avuto esiti diversi. Su Firefox SpiderMonkey, VUSec ha ottenuto un proof of concept che mostra la persistenza delle predizioni dopo il riuso del codice, ma non un exploit completo del browser. Nei test su Oracle GraalVM, la compilazione interna e la garbage collection eliminavano le voci di predizione prima che i ricercatori completassero un attacco. VUSec riferisce inoltre che Oracle ha contrastato il riuso randomizzando le posizioni della cache del codice JIT.

La mitigazione Linux segnalata

VUSec riferisce che gli sviluppatori del kernel Linux hanno integrato a monte una mitigazione x86. Questa invia una IBPB, una barriera alla predizione dei salti indiretti, su tutti i core quando un programma cBPF riutilizza una regione cBPF/eBPF già eseguita; la modifica scoraggia anche quel riuso.

VUSec associa ai problemi Linux gli identificativi CVE-2026-64507 e CVE-2026-64508. Il gruppo raccomanda di installare gli aggiornamenti del sistema operativo e del software quando i rispettivi produttori li rendono disponibili.

Perimetro dei test CPU e pubblicazione prevista

VUSec afferma di aver confermato il comportamento su tutte le CPU esaminate, appartenenti a Intel, AMD e Arm. Questa dichiarazione riguarda le CPU testate; la dimostrazione end-to-end del recupero dell’hash Linux è descritta separatamente.

Il gruppo indica che il paper su BTR è stato accettato per ACM CCS 2026 e ne ha programmato la pubblicazione per novembre 2026.