
Um utilitário de segurança Linux baseado em C para detectar, verificar com segurança (Prova de Conceito) e mitigar CVE-2026-64600 (RefluXFS). Ele fornece avaliação de vulnerabilidade do kernel, detecção de reflink XFS, uma PoC segura de condição de corrida e mitigação em camadas usando SystemTap e endurecimento XFS.
Este repositório fornece um utilitário C abrangente para detectar, verificar com segurança e mitigar a vulnerabilidade RefluXFS (CVE‑2026‑64600) em sistemas Linux que utilizam o sistema de arquivos XFS. A ferramenta verifica se o kernel é vulnerável, identifica montagens XFS com reflink habilitado, opcionalmente tenta disparar a condição de corrida com segurança e implanta uma mitigação em duas camadas (sonda SystemTap + remontagem com reflink=0) quando necessário.
⚠️ Aviso legal: Esta ferramenta destina-se apenas a avaliação de segurança autorizada e endurecimento de sistemas. Utilize-a somente em sistemas que você possui ou para os quais tenha permissão explícita para testar. Os autores não assumem qualquer responsabilidade por uso indevido.
CVE-2026-64600 (RefluXFS) é uma condição de corrida de alta gravidade no sistema de arquivos XFS do kernel Linux, especificamente no caminho de copy-on-write (CoW) para arquivos reflink (introduzida no kernel 4.11). Um atacante local sem privilégios pode corromper ou sobrescrever arquivos arbitrários no mesmo volume XFS ao disputar gravações concorrentes O_DIRECT em um clone reflink contra um arquivo protegido. A corrupção ocorre na camada de blocos, sobrevive a reinicializações e não deixa rastros nos logs do kernel.
Kernels afetados: Linux 4.11 até as versões corrigidas:
Impacto: escalonamento local de privilégios para root, corrupção persistente de dados, sobrescrita silenciosa de binários setuid ou arquivos sensíveis.
Esta ferramenta implementa:
/proc/mounts).-m fix é usado):
FICLONE e copy_file_range no XFS, retornando -EOPNOTSUPP.reflink=0 (defesa em profundidade).-c) – executa comandos arbitrários (ex.: id) somente se o sistema estiver vulnerável.-m exploit).reflink=0 (-m fix, requer root).--dry-run – pré-visualiza as ações de mitigação sem aplicá-las.--force – força a implantação da mitigação mesmo que as condições não sejam atendidas (laboratório/demo).-v) para informações detalhadas de análise.-c) – executa um comando somente se o sistema estiver vulnerável (padrão: 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
Pré-requisitos:
-m fix):
stap) – opcional, mas recomendado para mitigação completa.Opcional: Se o SystemTap não estiver disponível, a ferramenta recorrerá apenas ao endurecimento por remontagem (se suportado pela versão do 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"
| Opção | Descrição |
|---|---|
-h, --help | Mostra a mensagem de ajuda e sai. |
-v, --verbose | Saída detalhada (mostra os detalhes da versão do kernel analisada). |
-p <path> | Verifica o status do reflink no XFS em um ponto de montagem específico. |
-m, --mode <mode> | Modo de operação: check (padrão), exploit, auto, fix. |
-c, --cmd <command> | Executa comando personalizado somente se o sistema estiver vulnerável (padrão: id). |
--dry-run | Pré-visualiza as ações de mitigação (com -m fix) sem aplicar. |
--force | Força a implantação da mitigação mesmo que as condições não sejam atendidas (laboratório/demo). |
| Modo | Descrição |
|---|---|
check | Detecção passiva – informa a versão do kernel, o status do reflink no XFS e a heurística de distribuição. Nenhuma ação é executada. |
exploit | Executa a verificação segura da condição de corrida (PoC) mesmo se o sistema estiver vulnerável. Não aplica mitigação. |
auto | Se o sistema estiver vulnerável, executa a verificação segura da condição de corrida; caso contrário, apenas verifica. |
fix | Aplica a mitigação em camadas (requer root). Implanta a sonda SystemTap e tenta remontar o XFS com reflink=0. Só aplica se o kernel estiver vulnerável e o reflink do XFS estiver habilitado (a menos que --force seja usado). |
$ ./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
Para testar esta ferramenta em um ambiente seguro, você pode configurar uma VM Linux com uma partição XFS criada com reflink=1. Por exemplo:
# 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
Em seguida, execute a ferramenta no caminho montado (-p /mnt/xfs) para testar a detecção e a mitigação.
Este projeto é licenciado sob a GNU General Public License v3.0 – consulte o arquivo LICENSE para obter detalhes.
Issues e pull requests são bem-vindos. Certifique-se de que suas contribuições mantenham a mesma funcionalidade e sigam as diretrizes de uso ético.
Lembre-se: Sempre obtenha a devida autorização antes de testar qualquer ferramenta de segurança. Mantenha-se ético e responsável.