
Attacco Spectre-v2 BTR fa trapelare l'hash della password di root da Linux aggiornato
Ricercatori hanno dimostrato una nuova variante Spectre-v2 chiamata BTR che ruba l'hash della password di root da un sistema Linux Intel completamente aggiornato in pochi minuti, aggirando le protezioni esistenti.
Una nuova variante della vulnerabilità CPU Spectre-v2, chiamata Branch Target Reuse (BTR), può far trapelare memoria sensibile del kernel su sistemi Linux completamente aggiornati, anche con le protezioni predefinite attive. Ricercatori di sicurezza di VUSec e della Scuola Superiore Sant'Anna hanno rivelato l'attacco, che prende di mira i motori di compilazione just-in-time (JIT) all'interno dei browser web, dei runtime linguistici e del kernel stesso del sistema operativo. In un exploit dimostrativo, hanno estratto l'hash della password di root da un moderno sistema Intel in pochi minuti, dimostrando che anni di mitigazioni hardware e software lasciano ancora lacune sfruttabili.
Il nucleo di BTR risiede nel modo in cui i processori moderni gestiscono l'esecuzione speculativa, un trucco di prestazioni in cui la CPU indovina quali istruzioni seguiranno e le esegue in anticipo, scartando poi le ipotesi errate. Spectre-v2 sfrutta in particolare la predizione dei salti indiretti, il meccanismo che la CPU usa per ricordare dove un programma solitamente salta dopo una certa istruzione. BTR aggiunge una nuova svolta: sfrutta uno scollegamento tra il codice automodificante e il buffer dei target di salto (BTB), una tabella hardware che memorizza quelle predizioni di salto. Quando un motore JIT genera codice al volo, lo libera e in seguito riutilizza lo stesso indirizzo di memoria per nuovo codice, la vecchia voce BTB obsoleta può sopravvivere. La CPU può quindi saltare speculativamente al punto di ingresso obsoleto, dirottando l'esecuzione transiente e facendo trapelare segreti dalla memoria.
I ricercatori hanno spiegato l'attacco in tre fasi. Per prima cosa, un attaccante senza privilegi induce il motore JIT ad allocare un blocco di codice di addestramento e forza un salto indiretto specifico a raggiungerlo, piazzando una voce BTB legata a quell'indirizzo. Successivamente, l'attaccante fa sì che il motore liberi quella memoria e allochi un nuovo blocco target che si sovrappone parzialmente al vecchio indirizzo. Infine, attivando nuovamente il salto indiretto, la CPU consulta la voce BTB ormai obsoleta e salta speculativamente al vecchio punto di ingresso, che ora contiene codice scelto dall'attaccante. Poiché la CPU esegue temporaneamente questo percorso errato prima di accorgersi dell'errore, l'attaccante può misurare sottili cambiamenti nei tempi della cache della CPU per dedurre dati che normalmente sarebbero inaccessibili, come il contenuto della memoria del kernel.
L'attacco è stato confermato contro diversi motori JIT: SpiderMonkey (il motore JavaScript di Mozilla Firefox), il compilatore JIT del runtime GraalVM e il JIT del classico Berkeley Packet Filter (cBPF) del kernel Linux. Tutti e tre sono risultati vulnerabili, sebbene con diversa facilità di sfruttamento e tassi di perdita. I ricercatori hanno costruito due exploit end-to-end mirati al JIT cBPF del kernel Linux, dimostrando che un attaccante con accesso locale non privilegiato può recuperare l'hash della password di root da una macchina con sistema Intel completamente aggiornato. L'intera perdita richiede solo minuti, rendendo BTR una minaccia concreta in ambienti di hosting condiviso, configurazioni a container e ovunque gli attaccanti possano eseguire codice all'interno di un motore JIT.
Le mitigazioni sono già in corso. Sono state assegnate due vulnerabilità, CVE-2026-64507 e CVE-2026-64508, e le patch sono state integrate nel kernel Linux principale. GraalVM ha risolto il problema randomizzando le posizioni della sua cache di codice JIT, rendendo più difficile prevedere il riutilizzo degli indirizzi. Mozilla sta valutando un approccio basato sulle Indirect Branch Predictor Barriers (IBPB), una funzionalità che può svuotare il BTB, ma attualmente si sta concentrando sul completamento dell'implementazione dell'isolamento dei siti in Firefox, che separa i contesti di navigazione in processi indipendenti per limitare i danni che un singolo attacco può causare. La divulgazione segue un altro recente ritrovamento sull'esecuzione speculativa chiamato Interrupt Injection, segnalato dai ricercatori del MIT CSAIL, che ha anch'esso aggirato le difese Spectre-v2 su sistemi Intel e AMD.
Come Proteggerti
- Se gestisci un tuo server Linux, applica oggi stesso gli aggiornamenti del kernel più recenti dalla tua distribuzione, che includono le correzioni per queste falle Spectre-v2.
- Contatta il tuo provider di hosting e chiedi se hanno installato le ultime patch di sicurezza del kernel Linux sul tuo server.
- Mantieni aggiornato il tuo browser web (soprattutto Firefox), poiché i fornitori stanno lavorando a protezioni integrate che limitano queste fughe da siti web dannosi.
- Abilita l'isolamento dei siti in Firefox digitando about:preferences#privacy nella barra degli indirizzi e verificando che la protezione antitracciamento rigorosa o fission sia attiva, il che aiuta a contenere gli attacchi.
- Esegui solo software fidato ed evita di eseguire script o programmi sconosciuti che potrebbero tentare di sfruttare i motori JIT locali.
Vulnerabilità e Soluzioni
- CVE-2026-64507 A kernel vulnerability related to BTR that was mitigated through patches merged into the Linux kernel. Vedi la soluzione e i dettagli →
- CVE-2026-64508 Another kernel vulnerability related to BTR that was addressed by upstream kernel fixes. Vedi la soluzione e i dettagli →
I Termini Spiegati
- Spectre Una classe di difetti della CPU che ingannano il processore facendogli rivelare dati privati sfruttando la sua abitudine di fare previsioni in anticipo, scoperta nel 2017.
- Speculative execution Una tecnica di prestazioni in cui la CPU esegue istruzioni prima di sapere se sono effettivamente necessarie, scartando i risultati se l'ipotesi era sbagliata.
- JIT (Just-In-Time) engine Un componente software che compila ed esegue codice al volo, comunemente presente nei browser e nei runtime dei linguaggi di programmazione per accelerare l'esecuzione.
- BTB (Branch Target Buffer) Una piccola memoria all'interno della CPU che memorizza dove è probabile che un programma salti successivamente in base al comportamento passato, usata per predire i salti.
- cBPF (classic Berkeley Packet Filter) Una vecchia macchina virtuale interna al kernel usata in Linux per il filtraggio dei pacchetti di rete, che include un compilatore JIT preso di mira dall'attacco BTR.
- BTR (Branch Target Reuse) Il nome dato a questa nuova variante Spectre-v2, che riutilizza voci di predizione dei salti obsolete lasciate dopo che il codice viene liberato e sostituito.