Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cve-2026-31431 — Kit de pesquisa e detecção para LPE no kernel Linux CVE-2026-31431, incluindo análise de exploits, regras YARA, detecção via auditd/Falco, guia de correção e ambiente de laboratório. | Kitploit
Ferramentas/GitHubGitHub/vasyapokemon/cve-2026-31431
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoAnálise de MalwareForensia DigitalDetecção de IntrusãoPapers e PesquisaAprendizado e EducaçãoResposta a IncidentesRecursos CuradosLabs e Prática
24há 5 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
GitHub
vasyapokemon/cve-2026-31431

cve-2026-31431

Kit de pesquisa e detecção para LPE no kernel Linux CVE-2026-31431, incluindo análise de exploits, regras YARA, detecção via auditd/Falco, guia de correção e ambiente de laboratório.

Ver Repositório

CVE-2026-31431 — "Copy Fail": Escalação de Privilégio Local no algif_aead do Kernel Linux

CISA KEV | CVSS 7.8 ALTO | Afeta kernels Linux 4.14 – início de 2026 (~9 anos)


Índice

  1. Resumo Executivo
  2. Avaliação de Risco
  3. Análise Técnica Detalhada
  4. Metodologia de Ataque — Red Team
  5. Detecção e Resposta a Incidentes — Blue Team
  6. Correção e Remediação
  7. Ambiente de Laboratório
  8. Referências

1. Resumo Executivo

CVE-2026-31431, apelidada de "Copy Fail", é uma vulnerabilidade de escalada de privilégio local (LPE) de alta gravidade no subsistema criptográfico do kernel Linux. Um usuário local com privilégios baixos pode escalar para root em segundos em qualquer sistema sem correção.

AtributoValor
CVECVE-2026-31431
ApelidoCopy Fail
CVSS v3.17.8 ALTO
Vetor de AtaqueLocal
Privilégios NecessáriosBaixos
Interação do UsuárioNenhuma
Componentecrypto/algif_aead.c — template authencesn
Introduzida2017 (commit 72548b093ee3)
Divulgada2026
Anos Silenciosa~9 anos
CISA KEVSim
PoC PúblicoSim (script Python autônomo de 732 bytes)

Impacto nos Negócios

  • Acesso root em qualquer servidor Linux, VM, instância de nuvem ou host de contêiner sem correção
  • Escape de contêiner de pods Kubernetes — o cache de páginas é compartilhado com o kernel do host
  • Zero pegada em disco — a exploração não deixa alterações em arquivos, páginas sujas ou trilha de auditoria via ferramentas padrão de integridade de arquivos (Tripwire, AIDE)
  • Afeta Red Hat, Ubuntu, Debian, SUSE, Amazon Linux e praticamente todas as principais distribuições que executam kernels de 2017 em diante

Ação Imediata Recomendada

  1. Mitigação temporária (implantar agora, sem necessidade de reinicialização se o módulo não estiver carregado): ```bash echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf sudo rmmod algif_aead 2>/dev/null || true
  2. Correção permanente: Atualize os pacotes do kernel por meio do gerenciador de pacotes da sua distribuição e reinicie o sistema.
  3. Verificação: Execute detection/check_vulnerable.sh antes e depois da remediação.

2. Avaliação de Risco

Vetor CVSS 3.1```

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

| Métrica | Valor | Justificativa |
|--------|-------|-----------|
| Vetor de Ataque | **Local** | Requer acesso ao shell (SSH, exec em contêiner, físico) |
| Complexidade do Ataque | **Baixa** | Confiável, totalmente automatizado — não requer condição de corrida |
| Privilégios Necessários | **Baixos** | Qualquer conta de usuário sem privilégios |
| Interação do Usuário | **Nenhuma** | Nenhuma interação da vítima necessária |
| Confidencialidade | **Alta** | Comprometimento total do sistema |
| Integridade | **Alta** | Comprometimento total do sistema |
| Disponibilidade | **Alta** | Comprometimento total do sistema |

### Panorama de Ameaças

| Fator | Avaliação |
|--------|-----------|
| Disponibilidade de PoC | Pública, armada, Python autônomo de 732 bytes |
| Confiabilidade do Exploit | Alta — funciona em distros testadas sem modificação |
| Dificuldade de Detecção | Alta — sem gravações em disco, sem páginas sujas |
| Habilidade Necessária do Atacante | Baixa — script kiddie com PoC público |
| CISA KEV | Adicionado em 2026 — monitorado ativamente |
| Microsoft Defender | Sinalizado como sob investigação ativa |

### Ambientes Afetados

| Ambiente | Risco |
|-------------|------|
| Servidores Linux em hardware físico | Crítico |
| VMs Linux (nuvem ou on-premises) | Crítico |
| Nós Kubernetes | Crítico (também permite escape de contêiner) |
| Hosts Docker | Crítico |
| Hospedagem compartilhada / multi-tenant | Crítico |
| WSL2 / Linux no Windows | Avaliar conforme a versão do kernel |

---

## 3. Mergulho Técnico Aprofundado

### 3.1 Contexto: AF_ALG e AEAD

O kernel Linux expõe operações criptográficas ao espaço do usuário por meio de **soquetes AF_ALG** (`AF_ALG = 38`). Essa interface (`algif_aead`) permite que aplicações sem privilégios invoquem aceleradores de hardware criptográfico do kernel sem precisar de código em modo kernel.

**AEAD** (Autenticação de Criptografia com Dados Associados), algoritmos como AES-GCM e ChaCha20-Poly1305 são amplamente usados para TLS, criptografia de disco e protocolos VPN. O template vulnerável é `authencesn` — uma composição AEAD usando `hmac(sha256)` + `cbc(aes)` com suporte a Número de Sequência Estendido (ESN), comumente usado em IPsec.

### 3.2 Causa Raiz

Em 2017, o commit `72548b093ee3` introduziu a **operação AEAD in-place** em `algif_aead` como uma otimização de desempenho — permitindo que o motor criptográfico lesse e gravasse no mesmo buffer. Isso era falho:```
The bug chain:

1. Caller binds AF_ALG socket to:
      authencesn(hmac(sha256),cbc(aes))

2. Caller sends a decryption request via sendmsg() with specific flags

3. Caller uses splice() to feed PAGE CACHE PAGES from an open file
   descriptor directly into the socket's scatterlist

4. The authencesn template, during ESN header processing, uses the
   OUTPUT BUFFER as scratch space — writing 4 bytes past the
   expected output boundary

5. Because the scatterlist contains page cache pages (not private
   copies), this scratch write lands DIRECTLY IN THE PAGE CACHE

6. Page cache is shared kernel-wide — all processes reading the
   same file now see the modified bytes

Key insight: splice() is zero-copy — it hands page cache references
to the socket. The in-place "optimization" then writes INTO those
pages. No dirty bit is set because the write goes through the crypto
engine, not the normal write path.

3.3 A Primitiva de Escrita

A vulnerabilidade fornece uma escrita controlada de 4 bytes no cache de páginas de qualquer arquivo que o atacante possa abrir para leitura:

PropriedadeValor
Tamanho da escrita4 bytes
Controle de offsetSim — controlado pelo atacante via offset do splice
AlvoCache de páginas de qualquer arquivo legível
Marcação de página sujaNenhuma
Modificação no discoNenhuma
Atualização de timestampNenhuma
Entrada no log do kernelNenhuma (a menos que auditd esteja configurado)

A escrita é repetível — o exploit faz um loop da escrita de 4 bytes para corrigir sequências de código maiores.

3.4 Cadeia de Exploração```

[1] Open /usr/bin/su (or any setuid-root binary) for reading ↓ [2] Map a copy to find target instruction bytes (e.g., UID check, execve path, security gate) ↓ [3] Compute exact page cache offset of target bytes ↓ [4] Set up AF_ALG socket → authencesn(hmac(sha256),cbc(aes)) ↓ [5] splice() the target binary's page cache into the socket ↓ [6] Trigger decryption → authencesn scratch write patches the target bytes in page cache (4 bytes per iteration) ↓ [7] Repeat for each 4-byte patch needed ↓ [8] Execute /usr/bin/su → runs root-owned setuid binary but now with attacker-controlled code in page cache ↓ [9] Root shell

### 3.5 Por que as Defesas Padrão Falham
Baixar ferramenta