Blog
Linux KernelPrivilege EscalationAI Vulnerability ResearchRefluXFS

RefluXFS (CVE-2026-64600): un'IA ha trovato il bug root del kernel Linux invisibile da nove anni

RefluXFS (CVE-2026-64600) è una race XFS reflink che dà root a un utente locale su ~16,4M sistemi RHEL, sotto SELinux e KASLR — e a trovarla è stata Claude, non un umano.

Zero Hunt Research··10 min di lettura

L'aspetto interessante di CVE-2026-64600 non è che permetta a un utente locale non privilegiato di ottenere root su un'installazione Red Hat di default. I bug di privilege escalation su Linux emergono ogni pochi mesi. L'aspetto interessante è chi l'ha trovato. Il 22 luglio 2026 la Qualys Threat Research Unit ha divulgato RefluXFS, una race condition annidata nel percorso copy-on-write del filesystem XFS fin da quando il kernel 4.11 è uscito nel 2017 — e la falla non è stata individuata da un auditor umano che leggeva il codice. È stata individuata da un modello a cui è stato chiesto di andare a cercarla.

Quel dettaglio riformula l'intera vicenda. Un bug logico, memory-safe, vecchio di nove anni, nel filesystem di default dell'enterprise Linux più revisionato al mondo, è sopravvissuto a quasi un decennio di review umana ed è caduto davanti a una macchina in una singola sessione di ricerca. Se questa è ormai una capacità ripetibile, ogni organizzazione dovrebbe porsi la domanda ovvia: qualcuno sta già usando quella capacità contro la mia infrastruttura, e in tal caso sono io o l'attaccante?

Un'IA ha trovato una race del kernel vecchia di nove anni

Qualys attribuisce la scoperta a un'iniziativa di ricerca strutturata con Anthropic, in cui il team ha integrato Claude Mythos Preview — il modello di frontiera ad accesso riservato di Anthropic — in un workflow di audit del kernel guidato da esseri umani. Secondo la divulgazione di Qualys e il report di BleepingComputer, i ricercatori hanno puntato il modello sul sottosistema XFS chiedendogli di trovare un bug della stessa classe di Dirty COW — la race copy-on-write del 2016 che divenne una delle LPE Linux più sfruttate del decennio. Il modello ha localizzato la race, ha scritto un exploit root funzionante e ha redatto l'advisory. Gli umani sono rimasti nel loop e hanno verificato tutto, ma la scoperta è arrivata dalla macchina.

Vale la pena fermarsi su questo punto. Dirty COW stessa è rimasta nascosta nel kernel per circa undici anni prima che un umano la notasse nel 2016. RefluXFS è strutturalmente una sua cugina — una race CoW — ed è rimasta nascosta per nove. Il divario tra "una classe di bug che sappiamo esistere" e "l'istanza specifica nel tuo kernel in esecuzione" è esattamente il divario che la review manuale continua a non riuscire a chiudere, perché un umano non può ri-auditare milioni di righe di codice kernel concorrente a ogni commit. Un modello può essere puntato su quella superficie e istruito a cercare un pattern noto. RefluXFS è il primo caso ampiamente documentato in cui quel loop produce un bug root reale, armabile e diffuso su scala enterprise.

Il meccanismo è un fallimento time-of-check/time-of-use da manuale nel percorso reflink (condivisione di blocchi) di XFS. Quando due scritture O_DIRECT colpiscono lo stesso file reflinkato, il kernel rilascia brevemente l'inode lock mentre attende spazio nel transaction log. In quella finestra un secondo writer può completare il proprio remap e cambiare lo stato di riferimento del blocco originale. Quando il primo writer si risveglia, si fida dei metadati ormai obsoleti e scrive direttamente sul blocco condiviso originale invece di allocare una copia privata — che è l'intero scopo del copy-on-write.

La conseguenza è che un normale utente locale può sovrascrivere il contenuto su disco di qualsiasi file che sia in grado di leggere su un volume XFS affetto. Punta quella primitiva su un file di proprietà di root con contenuto prevedibile — un binario setuid, un'unit systemd, /etc/passwd — e hai root. Qualys riferisce che la race in genere si vince in meno di dieci secondi e che l'exploit era affidabile con l'hardening standard. L'azienda ha pubblicato una descrizione proof-of-concept tramite la lista oss-security ma ha trattenuto il codice funzionante dell'exploit.

La condizione per essere vulnerabili è stretta da enunciare e ampia nella pratica: il kernel è 4.11 o successivo e il filesystem bersaglio è XFS con reflink abilitato — che è stato il default sulle distribuzioni enterprise per anni.

Perché RefluXFS è invisibile: vive sotto il livello che le tue difese controllano

Gran parte del tuo stack di detection è puntato all'altitudine sbagliata per questo bug. RefluXFS non corrompe la memoria, quindi KASLR, SMEP e SMAP — le mitigazioni che fermano il tipico exploit kernel — semplicemente non si applicano. La scrittura atterra al livello di allocazione del filesystem, al di sotto di esse. Qualys riferisce che nei test l'exploit ha avuto successo con SELinux in modalità Enforcing, con kernel lockdown attivo, con filtri seccomp e dall'interno dei confini dei container. Nessuno di questi lo ha fermato.

Peggio ancora, per chi spera di intercettarlo a posteriori:

  • La scrittura malevola non produce alcun warning del kernel né alcuna voce di log — sembra normale I/O del filesystem.
  • La modifica su disco sopravvive a un riavvio, perché è su disco, non in un processo in esecuzione.
  • Non c'è alcuna firma di crash da corruzione di memoria su cui un EDR possa inciampare.

"Mostrami la riga di log della compromissione." Non esiste. L'exploit ha sovrascritto un file di proprietà di root attraverso un percorso legittimo del filesystem e se n'è andato. Il tuo strumento host-based ha visto un processo locale fare I/O locale su file e non ha avuto alcun motivo per segnalarlo.

È questa la proprietà scomoda delle LPE a livello di blocco: l'host è la scena del crimine e l'unico testimone, e non ha visto nulla. Dopo l'incidente una baseline di integrità potrebbe dirti che un file è cambiato — ma solo se ce l'avevi prima dell'attaccante.

Il raggio d'azione: 16,4 milioni di sistemi

Usando la propria telemetria di inventario asset, Qualys stima che RefluXFS colpisca potenzialmente più di 16,4 milioni di sistemi nel mondo. La mappa dell'esposizione è in sostanza "Linux enterprise moderno con storage di default":

  • RHEL 8, 9, 10 e i rebuild della famiglia RHEL — Rocky, AlmaLinux, Oracle Linux, CloudLinux (8/9/10)
  • CentOS Stream 8/9/10
  • Fedora Server 31 e successivi
  • Amazon Linux 2023 e Amazon Linux 2 (kernel da dicembre 2022 in poi)

RHEL 7 non è affetto — precede il supporto reflink di XFS. È l'unica buona notizia, ed è una magra consolazione per chi ha passato gli ultimi tre anni a migrare via da esso.

Al momento della divulgazione non era assegnato alcun punteggio CVSS e non era segnalato alcuno sfruttamento in the wild, e RefluXFS non è ancora nel catalogo CISA KEV. Non considerare nulla di tutto ciò come rassicurante. Un exploit funzionante esiste, la tecnica è ora descritta pubblicamente e le LPE sono la seconda metà di quasi ogni intrusione reale: il phishing o la RCE web procurano all'attaccante una shell, e un bug come questo trasforma quella shell in root. La finestra tra "descritto" e "armato in un toolkit commodity" per una primitiva root Linux affidabile si misura in giorni.

Remediation

RefluXFS non si può mitigare con hardening, isolare o disattivare via configurazione — il prerequisito reflink non può essere disabilitato su un filesystem esistente, e ogni mitigazione di memoria e di controllo d'accesso obbligatorio viene aggirata. La correzione è aggiornare il kernel e riavviare. Verifica ogni versione specifica del CVE sull'advisory Red Hat per CVE-2026-64600 per il tuo stream esatto prima di agire sui numeri qui sotto.

1. Sono affetto? Devono valere entrambe le condizioni. Controlla kernel e filesystem:

uname -r                       # 4.11 o successivo → in range
xfs_info / | grep reflink=     # reflink=1 → il prerequisito dell'exploit è soddisfatto

Ripeti il controllo xfs_info per ogni volume XFS montato in cui utenti non privilegiati possono scrivere, non solo /. Se compare reflink=1 e il kernel non è patchato, considera l'host sfruttabile. Gli host RHEL 7 sono fuori portata.

2. Patch — versioni corrette esatte. La correzione è il commit upstream 2f4acd0…, mergiato il 16 luglio 2026. Build corrette testate per stream:

Stream Kernel corretto Advisory
RHEL/EL 8.10 4.18.0-553.144.1.el8_10 RHSA-2026:39179 / 39180
RHEL/EL 9.8 5.14.0-687.26.1.el9_8 Errata RHEL 9, 14–17 lug 2026
RHEL/EL 10.2 6.12.0-211.34.1.el10_2 RHSA-2026:39494
Debian trixie 6.12.96-1 trixie-security

La copertura è specifica per stream — un numero di versione vicino non è prova della correzione. Conferma l'errata esatta per il tuo point release. Il riavvio è obbligatorio: installare il pacchetto non sostituisce il kernel in esecuzione, e RefluXFS vive nel kernel in esecuzione.

3. Non puoi patchare subito? Controlli compensativi. Non esiste una mitigazione pulita, ma per gli host che non possono riavviare subito ci sono due tamponi:

  • Red Hat ha pubblicato una mitigazione runtime SystemTap che intercetta l'operazione reflink. Trattala come una benda temporanea, non come una correzione.
  • Il live-patching senza riavvio (es. KernelCare) copre EL8/EL9 ed è in rollout per EL10 e Oracle UEK.

Nessuno dei due sostituisce un kernel patchato e riavviato. Dai priorità agli host multi-tenant, ai runner CI e a ogni macchina dove utenti non fidati o semi-fidati detengono shell locali — è lì che una LPE rende.

4. Cerca la compromissione. Non ci sono IOC di rete puliti — è un exploit locale e silenzioso nei log (MITRE ATT&CK T1068, Exploitation for Privilege Escalation, con defense evasion T1070, indicator removal). Cerca gli effetti, non l'exploit:

  • Esegui rpm -Va e confronta con hash noti-buoni — un file root di proprietà di un pacchetto sovrascritto (un binario setuid, una config di sistema) risulta come mismatch di checksum.
  • Sorveglia /etc/passwd, /etc/shadow, /etc/sudoers.d/, le directory delle unit systemd e i percorsi cron con auditd/IMA per scritture inattese (T1098 manipolazione account, T1543 persistenza systemd, T1053 cron).
  • Correla l'attività circostante: come è arrivato un utente locale sulla macchina e cosa ha fatto quell'identità sulla rete prima e dopo? La LPE è silenziosa, ma l'accesso iniziale e il movimento laterale post-root non lo sono.

5. Bonifica + verifica. Se i controlli di integrità segnalano un file root modificato: ricostruisci invece di riparare dove la macchina consentiva accesso locale non fidato, ruota ogni credenziale che l'attaccante potrebbe aver letto come root (chiavi host SSH, token di servizio, credenziali cloud in cache), rimuovi la persistenza inattesa, poi conferma che l'host abbia avviato il kernel patchato con uname -r.

Cosa dice sulla validazione un bug root latente da nove anni

Due fatti di questa divulgazione vanno tenuti insieme. Primo: un modello, puntato su una superficie di codice e istruito a cercare una classe di bug nota, ha prodotto un exploit root affidabile e diffuso a livello enterprise che la review umana aveva mancato per nove anni. Secondo: quell'exploit non lascia alcuna prova sul lato host, quindi non lo puoi rilevare a posteriori — puoi solo scoprire se i tuoi sistemi sono sfruttabili prima che qualcuno lo usi, provando.

È esattamente il problema per cui è stato costruito l'AI generative pentest di Zero Hunt. Lo swarm a 10 agenti della piattaforma gira in continuo e on-prem, e i suoi agenti Post-Exploit e Pivot operano sulla stessa premessa assumed-breach che RefluXFS impone: dato un punto d'appoggio, possiamo davvero arrivare a root su questo host, con il suo kernel e il suo layout di filesystem — non una supposizione dal banner di versione, ma una catena dimostrata. Ogni exploit è generato per bersaglio da un LLM locale e ripassato in backtest nell'AI Gym contro i corpus Vulhub e basati su CVE prima ancora di avvicinarsi a un asset di produzione, così la validazione stessa è sicura. Ogni finding è firmato in ECDSA con catena di custodia, così "abbiamo confermato che questa macchina era sfruttabile e poi l'abbiamo corretta" è un artefatto probatorio, non un'affermazione. Ed è la stessa capacità sottostante che ha trovato RefluXFS — un modello che ragiona sul codice e costruisce l'exploit — rivolta verso l'interno, sulla tua infrastruttura, secondo i tuoi tempi, non quelli di un attaccante.

Il lato traffico chiude il varco che RefluXFS apre sull'host. Poiché la LPE in sé è invisibile localmente, l'unico posto in cui l'intrusione lascia una traccia è la rete — il punto d'appoggio iniziale che ha depositato l'exploit e il movimento laterale dopo root. L'AI Traffic Analysis di Zero Hunt, un modello di deep learning con quattro teste di inferenza che gira a oltre 2,7 Gbit/s sulla GPU dell'appliance, sorveglia esattamente questo: la sessione anomala che ha messo un utente locale su una macchina che storicamente non ne aveva, e il fan-out che segue una silenziosa escalation di privilegi. Quando l'host diventa cieco, è la rete a vedere ancora.

Un'IA ha trovato questo bug in un laboratorio. L'unica domanda che conta adesso è se un'IA stia controllando la tua infrastruttura prima di quella di un attaccante.