🛡️ Executive Summary
- Branch Target Reuse sfrutta predizioni di salto obsolete rimaste nella CPU dopo che un motore JIT ha liberato e riutilizzato memoria eseguibile.
- I ricercatori hanno dimostrato su Linux la sottrazione dell’hash della password root da un processo senza privilegi, aggirando le normali separazioni di memoria.
- Linux ha già corretto il vettore BPF con due CVE; SpiderMonkey e GraalVM mostrano però che il problema supera il solo kernel.
Spectre V2 torna con una variante che colpisce uno dei meccanismi più diffusi nei sistemi moderni: la compilazione Just-In-Time. Ricercatori di VUSec alla Vrije Universiteit Amsterdam e della Scuola Superiore Sant’Anna hanno presentato Branch Target Reuse (BTR), tecnica che sfrutta informazioni obsolete conservate dal branch predictor dopo che una regione di codice JIT è stata liberata e riutilizzata. Su Linux il gruppo ha costruito due exploit end-to-end capaci di leggere memoria del kernel e recuperare l’hash della password root in pochi minuti da un processo non privilegiato. Il problema non riguarda soltanto BPF: i test coinvolgono anche Firefox SpiderMonkey e Oracle GraalVM, mostrando una debolezza trasversale tra processore e runtime.
Cosa leggere
BTR sfrutta ciò che la CPU ricorda dopo che il codice non esiste più
Il cuore dell’attacco è una mancata sincronizzazione tra ciò che il sistema operativo considera codice valido e ciò che il processore conserva nei propri meccanismi predittivi. Un motore JIT crea codice macchina in memoria, lo esegue, può successivamente eliminarlo e utilizzare la stessa regione per nuove istruzioni. Dal punto di vista architetturale il codice precedente non esiste più, ma alcune CPU possono mantenere nel Branch Target Buffer informazioni sul vecchio obiettivo di un salto indiretto.

La ricerca originale Branch Target Reuse di VUSec mostra come un attaccante possa addestrare una predizione verso una regione JIT controllata, provocarne la deallocazione, far occupare parzialmente lo stesso indirizzo da nuovo codice e infine riattivare il salto: la CPU utilizza transitoriamente il vecchio target e comincia a eseguire istruzioni dal nuovo contenuto prima che la previsione errata venga annullata. I ricercatori definiscono il risultato una sorta di speculative execute-after-free. L’esecuzione non diventa architetturalmente visibile, ma lascia tracce microarchitetturali utilizzabili come side channel per ricostruire informazioni riservate. È un’evoluzione dello stesso problema alla base di Interrupt Injection, tecnica capace di aggirare difese Spectre V2 su processori AMD e Intel: le mitigazioni accumulatesi dal 2018 riducono alcuni percorsi di attacco, senza eliminare la possibilità di trovare nuovi modi per influenzare la speculazione.
Leggi anche: Spectre buca Cloudflare Workers e sottrae JWT tra tenant
Su Linux un utente senza privilegi può arrivare all’hash della password root
La dimostrazione più concreta utilizza il classic BPF JIT del kernel Linux, superficie particolarmente interessante perché normali processi possono installare filtri socket cBPF senza disporre dei privilegi root richiesti da altre operazioni sul kernel. Gli exploit sviluppati dai ricercatori sfruttano il riutilizzo delle aree eseguibili del JIT per indirizzare speculativamente il processore verso gadget utili alla lettura della memoria.
In una delle dimostrazioni l’attacco individua il contenuto di /etc/shadow rimasto nella page cache e recupera l’hash della password root: sui sistemi Intel utilizzati nella ricerca l’operazione richiede nell’ordine di pochi minuti, con tempi indicativi di circa tre minuti sulle core Raptor Cove e cinque sulle Lion Cove. Il dato non significa che BTR fornisca immediatamente la password in chiaro: viene sottratto l’hash, che rappresenta comunque informazione normalmente inaccessibile a un utente non privilegiato e può successivamente diventare oggetto di cracking offline. Il risultato è particolarmente rilevante perché l’exploit dimostrativo opera contro macchine con le normali mitigazioni Spectre abilitate.

Il precedente delle quattro vulnerabilità Linux accompagnate da exploit pubblici per ottenere privilegi root riguardava errori software tradizionali di memory safety; BTR è diverso perché attraversa il confine tra software correttamente isolato e comportamento speculativo dell’hardware. Non risultano, al momento della pubblicazione della ricerca, evidenze di sfruttamento attivo della tecnica in attacchi reali.
Due CVE Linux mostrano che la correzione era già nascosta negli aggiornamenti di luglio
La disclosure pubblica arriva a fine settembre, ma Linux aveva ricevuto le contromisure già a luglio sotto embargo. CVE-2026-64507 abilita un flush IBPB, Indirect Branch Predictor Barrier, quando il BPF JIT riutilizza memoria precedentemente occupata da codice eseguibile; CVE-2026-64508 introduce invece l’infrastruttura necessaria a irrigidire l’allocatore BPF contro il riutilizzo delle vecchie predizioni. La comunicazione Linux relativa a CVE-2026-64507 specifica che il flush viene applicato quando sono attive le mitigazioni Spectre V2 e il BPF JIT, mentre la descrizione di CVE-2026-64508 chiarisce esplicitamente il problema: quando nuovo codice occupa lo spazio di un precedente programma JIT, un salto indiretto può riutilizzare la predizione lasciata dal programma eliminato.

Le correzioni sono state integrate almeno in Linux 6.6.145, 6.12.97, 6.18.39, 7.1.4 e 7.2-rc2, con ulteriori backport che dipendono dai rami supportati dalle distribuzioni. La raccomandazione del kernel team resta utilizzare una versione stabile aggiornata invece di applicare singolarmente i commit. Il problema assume particolare importanza sui server dove BPF viene utilizzato per networking, osservabilità e sicurezza: non perché ogni workload BPF sia automaticamente sfruttabile, ma perché la vulnerabilità nasce proprio dall’ottimizzazione con cui l’allocatore riutilizza memoria eseguibile JIT. È la stessa difficoltà strutturale emersa con DDRoP contro Intel TDX e AMD SEV-SNP: una garanzia di sicurezza può essere corretta a livello architetturale e fallire quando uno stato microarchitetturale rimane disponibile più a lungo del previsto.
Continua con:
Interrupt Injection aggira le difese Spectre V2 su AMD e Intel
Linux kernel: tre falle sfruttate e quattro exploit portano a root
Firefox e GraalVM dimostrano che il problema non finisce con la patch Linux
Il valore della ricerca aumenta osservando gli altri ambienti analizzati. BTR non è una vulnerabilità esclusiva di BPF, ma un comportamento che può emergere dove un JIT compiler crea, elimina e rialloca codice eseguibile mentre il branch predictor conserva target precedenti. I ricercatori hanno riprodotto la condizione anche nel motore SpiderMonkey di Firefox e in Oracle GraalVM. Oracle ha risposto rendendo meno prevedibile il riutilizzo delle regioni attraverso la randomizzazione delle posizioni della JIT code cache; Mozilla ha valutato soluzioni basate su IBPB, ma la strategia indicata nella disclosure privilegia il completamento della site isolation, che riduce la possibilità per codice ostile e dati sensibili di convivere nello stesso dominio di processo. L’impatto varia inoltre in base alla microarchitettura: il gruppo dichiara di aver osservato il comportamento alla base di BTR sui processori Intel, AMD e Arm valutati, ma gli exploit Linux completi presentati pubblicamente sono stati sviluppati sui sistemi Intel testati. Questa distinzione evita di trasformare la ricerca in una vulnerabilità universale immediatamente sfruttabile su qualsiasi CPU. BTR dimostra però qualcosa di più importante: dopo otto anni di retpoline, IBRS, eIBRS, IBPB e ulteriori hardening, Spectre V2 non è diventato un problema chiuso. Finché prestazioni e isolamento dipenderanno da stati predittivi invisibili al software, il confine di sicurezza continuerà a includere non soltanto il codice eseguito, ma anche ciò che il processore ricorda di codice che non esiste più.
Iscriviti alla Newsletter
Non perdere le analisi settimanali: Entra nella Matrice Digitale.
Matrice Digitale partecipa al Programma Affiliazione Amazon EU. In qualità di Affiliato Amazon, ricevo un guadagno dagli acquisti idonei. Questo non influenza i prezzi per te.









