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-Copy-Fail — Análise abrangente do CVE-2026-31431, uma LPE do kernel Linux, incluindo metodologia de exploração, scripts de detecção, regras YARA, configurações de auditd e Falco, e orientações de remediação. | Kitploit
Ferramentas/GitHubGitHub/rippsec/cve-2026-31431-copy-fail
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoAprendizado e EducaçãoRed TeamingResposta a Incidentes
GitHubrippsec/cve-2026-31431-copy-fail

CVE-2026-31431-Copy-Fail

Análise abrangente do CVE-2026-31431, uma LPE do kernel Linux, incluindo metodologia de exploração, scripts de detecção, regras YARA, configurações de auditd e Falco, e orientações de remediação.

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
Ver Repositório
124há 5 mesesAinda não revisado

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 escalação 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 de 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 Riscos

String do 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 bare-metal | 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 versão do kernel |

---

## 3. Mergulho Técnico Profundo

### 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 **sockets 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.

Algoritmos **AEAD** (Autenticação de Criptografia com Dados Associados) 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