
Utility di sicurezza Linux basata su C per rilevare, verificare in sicurezza (Proof of Concept) e mitigare la CVE-2026-64600 (RefluXFS). Fornisce valutazione delle vulnerabilità del kernel, rilevamento dei reflink XFS, una PoC sicura per la race condition e mitigazione a strati tramite SystemTap e l'hardening di XFS.
Questo repository fornisce un'utilità C completa per rilevare, verificare in sicurezza e mitigare la vulnerabilità RefluXFS (CVE‑2026‑64600) su sistemi Linux con filesystem XFS. Lo strumento verifica la presenza di un kernel vulnerabile, identifica i mount XFS con reflink abilitato, tenta opzionalmente un trigger di race condition sicuro e implementa una mitigazione a due livelli (sonda SystemTap + rimount con reflink=0) quando necessario.
⚠️ Disclaimer: Questo strumento è destinato esclusivamente a valutazioni di sicurezza autorizzate e hardening del sistema. Usalo solo su sistemi di tua proprietà o per cui hai esplicita autorizzazione a testare. Gli autori non si assumono alcuna responsabilità per un uso improprio.
CVE-2026-64600 (RefluXFS) è una race condition ad alta severità nel filesystem XFS del kernel Linux, in particolare nel percorso copy‑on‑write (CoW) per i file reflinkati (introdotto nel kernel 4.11). Un attaccante locale non privilegiato può corrompere o sovrascrivere file arbitrari sullo stesso volume XFS mettendo in competizione scritture O_DIRECT concorrenti su un clone reflink contro un file protetto. La corruzione avviene a livello di block layer, sopravvive ai riavvii e non lascia tracce nei log del kernel.
Kernel interessati: Linux 4.11 fino alle versioni corrette:
Impatto: escalation locale dei privilegi a root, corruzione persistente dei dati, sovrascrittura silenziosa di binari setuid o file sensibili.
Questo strumento implementa:
/proc/mounts).-m fix):
FICLONE e copy_file_range su XFS, restituendo -EOPNOTSUPP.reflink=0 (difesa in profondità).-c) – esegue comandi arbitrari (es. id) solo se il sistema è vulnerabile.-m exploit).reflink=0 (-m fix, richiede root).--dry-run – anteprima delle azioni di mitigazione senza applicarle.--force – forza l'implementazione della mitigazione anche se le condizioni non sono soddisfatte (laboratorio/demo).-v) per informazioni di parsing dettagliate.-c) – esegue un comando solo se il sistema è vulnerabile (predefinito: id).git clone https://github.com/Debajyoti0-0/CVE-2026-64600.git
cd cve-2026-64600
gcc -o cve-2026-64600 cve-2026-64600.c -lm -lpthread
Prerequisiti:
-m fix):
stap) – opzionale, ma consigliato per una mitigazione completa.Opzionale: Se SystemTap non è disponibile, lo strumento ripiegherà sul solo hardening tramite rimount (se supportato dalla versione di XFS).
./cve-2026-64600
./cve-2026-64600 -v
./cve-2026-64600 -p /mnt/data
./cve-2026-64600 -m exploit
./cve-2026-64600 -m auto
sudo ./cve-2026-64600 -m fix
sudo ./cve-2026-64600 -m fix --dry-run
sudo ./cve-2026-64600 -m fix --force
./cve-2026-64600 -c "whoami"
./cve-2026-64600 -v -c "id"
| Opzione | Descrizione |
|---|---|
-h, --help | Mostra il messaggio di aiuto ed esce. |
-v, --verbose | Output dettagliato (mostra i dettagli della versione del kernel analizzata). |
-p <path> | Controlla lo stato del reflink XFS su un punto di mount specifico. |
-m, --mode <mode> | Modalità operativa: check (predefinita), exploit, auto, fix. |
-c, --cmd <command> | Esegue un comando personalizzato solo se il sistema è vulnerabile (predefinito: id). |
--dry-run | Anteprima delle azioni di mitigazione (con -m fix) senza applicarle. |
--force | Forza l'implementazione della mitigazione anche se le condizioni non sono soddisfatte (laboratorio/demo). |
| Modalità | Descrizione |
|---|---|
check | Rilevamento passivo – riporta versione del kernel, stato del reflink XFS ed euristica della distribuzione. Nessuna azione intrapresa. |
exploit | Esegue la verifica sicura della race condition (PoC) anche se il sistema è vulnerabile. Non applica la mitigazione. |
auto | Se il sistema è vulnerabile, esegue la verifica sicura della race condition; altrimenti esegue solo il controllo. |
fix | Applica la mitigazione a livelli (richiede root). Implementa la sonda SystemTap e tenta di rimontare XFS con reflink=0. Si applica solo se il kernel è vulnerabile e il reflink XFS è abilitato (a meno che non si usi --force). |
$ ./cve-2026-64600
┌──────────────────────────────────────────────────────────────────────┐
│ CVE-2026-64600 (RefluXFS) — Mode: check │
└──────────────────────────────────────────────────────────────────────┘
─── System Information ───
Kernel 5.15.0-91-generic
Architecture x86_64
─── Vulnerability Assessment ───
Kernel Vulnerable NO
XFS Reflink (any mount) DISABLED
Distribution Affected (heuristic) NO
────────────────────────────────────────────────────────────────────
FINAL VERDICT
────────────────────────────────────────────────────────────────────
┌──────────────────────────────────────────────────────────────────────┐
│ SAFE: kernel not vulnerable and no XFS reflink found │
└──────────────────────────────────────────────────────────────────────┘
Kernel: 5.15.0-91-generic (not vulnerable)
XFS reflink: not detected
System appears secure against CVE-2026-64600
────────────────────────────────────────────────────────────────────
$ ./cve-2026-64600
┌──────────────────────────────────────────────────────────────────────┐
│ CVE-2026-64600 (RefluXFS) — Mode: check │
└──────────────────────────────────────────────────────────────────────┘
─── System Information ───
Kernel 6.12.0-rc2
Architecture x86_64
─── Vulnerability Assessment ───
Kernel Vulnerable YES
XFS Reflink (any mount) DISABLED
Distribution Affected (heuristic) YES
A vulnerable kernel was detected. Show remediation advisory? [y/n]: n
────────────────────────────────────────────────────────────────────
FINAL VERDICT
────────────────────────────────────────────────────────────────────
┌──────────────────────────────────────────────────────────────────────┐
│ PARTIAL: vulnerable kernel, but no XFS reflink found │
└──────────────────────────────────────────────────────────────────────┘
Kernel: 6.12.0-rc2 (vulnerable)
XFS reflink: not detected
Recommendation: still consider kernel update as precaution
────────────────────────────────────────────────────────────────────
$ sudo ./cve-2026-64600 -m fix
┌──────────────────────────────────────────────────────────────────────┐
│ CVE-2026-64600 (RefluXFS) — Mode: fix │
└──────────────────────────────────────────────────────────────────────┘
─── System Information ───
Kernel 6.12.0-rc2
Architecture x86_64
─── Vulnerability Assessment ───
Kernel Vulnerable YES
XFS Reflink (any mount) ENABLED
Distribution Affected (heuristic) YES
--- Mitigation Deployment ---
Layer 2/2: mount-level hardening (remount reflink=0)
Remounted /mnt/xfs with reflink=0
Layer 1/2: syscall-level block (SystemTap probe)
Status DEPLOYED (SystemTap)
Log: /var/log/refluxfs-block.log
Stop: sudo pkill -f 'stap.*refluxfs-block'
Verify: cp --reflink=always /etc/passwd /tmp/test 2>&1 | grep -q 'Operation not supported'
Status MITIGATION ACTIVE (both layers)
--- FINAL VERDICT ---
┌──────────────────────────────────────────────────────────────────────┐
│ CONFIRMED VULNERABLE (race triggered) │
└──────────────────────────────────────────────────────────────────────┘
Kernel: 6.12.0-rc2 (vulnerable)
XFS reflink: enabled
Distribution: affected
Per testare questo strumento in un ambiente sicuro, puoi configurare una VM Linux con una partizione XFS creata con reflink=1. Ad esempio:
# Create a loop device with an XFS filesystem (reflink enabled)
dd if=/dev/zero of=/tmp/xfs.img bs=1M count=1024
mkfs.xfs -m reflink=1 /tmp/xfs.img
sudo mount -o loop /tmp/xfs.img /mnt/xfs
Quindi esegui lo strumento sul percorso montato (-p /mnt/xfs) per testare rilevamento e mitigazione.
Questo progetto è concesso in licenza secondo la GNU General Public License v3.0 – consulta il file LICENSE per i dettagli.
Issue e pull request sono benvenuti. Assicurati che i tuoi contributi mantengano la stessa funzionalità e rispettino le linee guida per un uso etico.
Ricorda: Ottieni sempre la dovuta autorizzazione prima di testare qualsiasi strumento di sicurezza. Mantieniti etico e responsabile.