
Exercício de detecção em laboratório para DirtyFrag (CVE-2026-43284) - escalada de privilégio no kernel do Linux via corrupção do cache de página xfrm-ESP. Documentação completa abordando execução de exploit, lacunas de detecção e regras EQL corrigidas usando Elastic Stack
Classificação: Laboratório Interno - CyberLAB
Data: 24 de Maio de 2026
Plataforma: Elastic Stack v9.4.1
Status: Detecção Confirmada
Um exercício controlado de exploração simulando um adversário pós-acesso inicial usando DirtyFrag (CVE-2026-43284), uma vulnerabilidade de escalada de privilégios no kernel Linux. O cenário do atacante simulado: um usuário com privilégios baixos (saskia, uid=1001) obtido via credenciais de phishing tenta escalar para root em um host Linux interno. O laboratório utilizou uma máquina Ubuntu deliberadamente vulnerável (ubuntu-vuln, kernel 6.0.0-22-generic) isolada de redes de produção.
O atacante alcançou acesso total como root (uid=0) dentro do ambiente de laboratório. A pilha de detecção Elastic Security gerou 3 alertas de ALTA gravidade (pontuação de risco 73) identificando corretamente a cadeia de exploração. No entanto, a detecção exigiu ajuste manual - a configuração padrão tinha lacunas que teriam resultado em alertas perdidos.
Conclusão: Hosts Linux não corrigidos executando kernel <= 6.x estão vulneráveis. Se um atacante já possui um ponto de apoio com privilégios baixos, este exploit concede root total de forma silenciosa e rápida, sem deixar rastros visíveis no disco para ferramentas de integridade de arquivos.
| Item | Detalhe |
|---|---|
| Vulnerabilidade | DirtyFrag - CVE-2026-43284 (caminho xfrm-ESP), CVE-2026-43500 (caminho RxRPC) |
| Impacto CVSS | Escalada total de privilégios local para root |
| Kernels afetados | Linux kernel >= janeiro de 2017 (vida útil de 9 anos) |
| Distros afetadas | Ubuntu 24.04.4, RHEL 10.1, AlmaLinux 10, openSUSE, CentOS Stream 10, Fedora 44 |
| Bypass de integridade de arquivos | Arquivos no disco inalterados - AIDE, Tripwire, monitoramento de hash reportam todos como limpos |
| PoC público | Disponível (V4bel/dirtyfrag no GitHub) |
| Tempo para root | < 10 minutos a partir do ponto de apoio com privilégios baixos |
auditd não produzem evidências. Sem regras explícitas de syscall para socket, splice e unshare, o exploit é executado silenciosamente - sem logs, sem alertas. A implantação padrão do Elastic Agent não adiciona essas regras automaticamente.process.parent.pid como chave de correlação. Na prática, o DirtyFrag cria processos intermediários (fork), quebrando essa correlação. A correção - correlacionar por auditd.session - foi identificada e implementada durante este exercício./etc/shadow, acessou chaves autorizadas SSH, escreveu um marcador de persistência (/root/pwned.txt) e iniciou reconhecimento de rede via nc. Tudo ocorreu dentro de 30 minutos após o acesso inicial.| Prioridade | Ação |
|---|---|
| Imediata | Corrigir o kernel Linux para uma versão corrigida em todos os hosts. Aplicar avisos de segurança dos fornecedores para Ubuntu, RHEL, AlmaLinux, openSUSE, CentOS, Fedora. |
| Curto prazo | Implantar regras explícitas de syscall do auditd para socket, splice e unshare em todos os hosts Linux monitorados pelo Elastic Agent. |
| Curto prazo | Atualizar regras de detecção EQL para correlacionar por auditd.session em vez de process.parent.pid para sequências de manipulação de namespace. |
| Contínuo | Tratar alertas de escalada de privilégios com pontuação de risco >= 73 como triagem de alta prioridade. A regra atual dispara em segundos após a escalada. |
Objetivo: Validar a cobertura de detecção para exploração do DirtyFrag no SOC do laboratório doméstico, identificar lacunas de detecção e produzir uma regra de detecção corrigida com base no comportamento observado do atacante.
Modelo de ameaça: Adversário simulado pós-acesso inicial com credenciais de phishing para uma conta de usuário com privilégios baixos (saskia, uid=1001). Objetivo: escalada de privilégios para root via DirtyFrag usando o caminho de recebimento xfrm-ESP. Execução em laboratório realizada via console Proxmox - funcionalmente equivalente a SSH pós-acesso.
Dois níveis de capacidade do atacante foram considerados:
Este exercício cobriu o nível vanilla.
DirtyFrag é o terceiro de uma família de bugs relacionados no kernel Linux que todos abusam da mesma causa raiz:
| CVE | Apelido | Introduzido | Caminho |
|---|---|---|---|
| CVE-2022-0847 | Dirty Pipe | - | pipe |
| CVE-2026-31431 | Copy Fail | - | splice |
| CVE-2026-43284 | DirtyFrag | Jan 2017 (commit cac2661c53f3) | xfrm-ESP |
| CVE-2026-43500 | DirtyFrag | Jun 2023 (commit 2dc334f1a63a) | RxRPC |
Causa raiz: Os caminhos de anexação de datagramas IPv4/IPv6 não definiam SKBFL_SHARED_FRAG após skb_splice_from_iter() plantar uma página do cache de páginas em um buffer de socket (sk_buff). O caminho de entrada ESP então realizava criptografia in-place em páginas do cache de páginas controladas pelo atacante, tratando-as como skbs não lineares comuns não clonadas.
Primitiva do exploit: Escrita controlada de 4 ou 8 bytes no cache de páginas. Determinístico - nenhuma condição de corrida necessária.
Cadeia do exploit:
/usr/bin/su) no cache de páginassplice() para que a página do arquivo fique em frag[0] de struct sk_buffxfrm-ESPexecve() do kernel - retornam bytes corrompidosPropriedade crítica de evasão: O arquivo no disco nunca é modificado. Ferramentas de monitoramento de integridade de arquivos (AIDE, Tripwire, verificações de hash) todas reportam o arquivo alvo como limpo.
Distribuições vulneráveis confirmadas: Ubuntu 24.04.4, RHEL 10.1, AlmaLinux 10, openSUSE Tumbleweed, CentOS Stream 10, Fedora 44.