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-Report-Copy-fail-Vulnerability- — Análise detalhada da vulnerabilidade Copy Fail (CVE-2026-31431) no kernel Linux, incluindo o mecanismo de corrupção de memória, o fluxo de escalonamento de privilégios e o impacto na segurança. | Kitploit
Ferramentas/GitHubGitHub/krish-foren6/cve-2026-31431-report-copy-fail-vulnerability-
Escalada de PrivilégiosForensia de MemóriaAnálise de VulnerabilidadesExploraçãoAprendizado e EducaçãoResposta a IncidentesEscape de Contêiner
GitHubkrish-foren6/cve-2026-31431-report-copy-fail-vulnerability-

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

CVE-2026-31431-Report-Copy-fail-Vulnerability-

Análise detalhada da vulnerabilidade Copy Fail (CVE-2026-31431) no kernel Linux, incluindo o mecanismo de corrupção de memória, o fluxo de escalonamento de privilégios e o impacto na segurança.

Ver Repositório
127há 5 mesesAinda não revisado

CVE-2026-31431 — Copy Fail: Escalação de Privilégios no Kernel Linux

CVE CVSS Kernel Type Purpose

Análise educacional da vulnerabilidade Copy Fail no kernel Linux.
Aborda o mecanismo de corrupção de memória, o fluxo de escalação de privilégios, a fuga de contêineres e as contramedidas defensivas.


⚠️ Aviso Legal

Este repositório é destinado exclusivamente a fins educacionais e de pesquisa.
Não utilize estas informações em sistemas que você não possui ou para os quais não tenha permissão explícita por escrito para testar.
Todos os trechos de código e comandos são fornecidos estritamente para auxiliar na compreensão dos internals do kernel Linux.


Índice

  • Visão Geral
  • Cartão de Identidade da Vulnerabilidade
  • Conceitos Fundamentais
  • Como a Falha Funciona
  • Fluxo Completo do Ataque
  • Por Que É Tão Perigoso
  • Observação Prática Segura
  • Defesa e Detecção
  • Comparação com CVEs Semelhantes
  • Glossário
  • Referência Rápida

Visão Geral

CVE-2026-31431, também conhecida como Copy Fail, é uma vulnerabilidade do kernel Linux na qual um usuário local sem privilégios pode escalar para root sem nenhuma permissão especial.

O ataque opera inteiramente na RAM. O arquivo em disco nunca é tocado — ou seja, os hashes dos arquivos permanecem intactos, os timestamps não são alterados e os logs de auditoria não registram nada. Quando o sistema é reiniciado, todas as evidências desaparecem.

Usuário normal  →  explora falha do algif_aead  →  sobrescreve page cache  →  root

Propriedades principais:

  • ✅ Sem condição de corrida — funciona de forma confiável todas as vezes
  • ✅ Disco intocado — a perícia forense não encontra nada
  • ✅ Requer apenas uma conta de usuário local padrão
  • ✅ Permite fuga de contêiner via page cache compartilhado

Cartão de Identidade da Vulnerabilidade

CampoValor
ID CVECVE-2026-31431
Nome ComumCopy Fail / Corrupção do Page Cache do algif_aead
Pontuação CVSS v3.17.8 — CRÍTICA
Tipo de AtaqueEscalação Local de Privilégios (LPE)
Versões de Kernel AfetadasLinux 5.10 a 6.8 (aprox.)
Componente Vulnerávelcrypto/algif_aead.c — interface de socket AF_ALG
Confiabilidade da ExploraçãoALTA — Não requer condição de corrida
Evidência em DiscoNENHUMA — modificação apenas em RAM
Impacto em ContêineresSIM — Fuga do host via page cache compartilhado
Status do PatchDisponível (patch upstream do kernel lançado)

Conceitos Fundamentais

/usr/bin/su — O Binário Alvo

su (Switch User) permite que um usuário alterne para outra conta — normalmente root. É um binário SetUID:

ls -l /usr/bin/su
# -rwsr-xr-x 1 root root 68208 Jan 1 2026 /usr/bin/su
#   ^-- 's' = flag SetUID

A flag s significa: quando qualquer usuário executa este binário, ele é executado com as permissões de root. Isso o torna um alvo de alto valor.

Sua lógica interna (simplificada):

if (password_correct()) {
    give_root_access();
} else {
    deny_access();
}

O objetivo do ataque: pular completamente a verificação password_correct().


RAM e Page Cache

Quando o Linux lê um arquivo do disco, ele mantém uma cópia na RAM chamada page cache.

ComponenteDescrição
DiscoArquivo original no disco (a estante de livros)
Page CacheCópia do arquivo na RAM (a fotocópia na sua mesa)
CPULê e executa a partir do page cache — rápido
AtacanteModifica a cópia na RAM; o disco permanece intocado
cat /proc/meminfo | grep Cached
# Cached: 1234567 kB  ← este é o page cache

Buffer e Buffer Seguro

TipoSegurança
Buffer Seguro — alocado pelo kernel, tamanho e limites controlados✅ OK
Page Cache — cópia em RAM com suporte de arquivo, compartilhada, executável⚠️ PERIGOSO se for gravado
Ponteiro Errado — endereço causado por falha apontando para qualquer lugar🔴 CRÍTICO

AF_ALG e algif_aead

AF_ALG (Algorithm Family) é uma interface de socket do Linux que permite que programas em espaço de usuário usem funções criptográficas do kernel (AES, SHA, AEAD).

socket(AF_ALG, SOCK_SEQPACKET, 0);  // abre um socket criptográfico

algif_aead é o módulo do kernel que lida com criptografia AEAD (ex.: AES-GCM) através do AF_ALG. A vulnerabilidade reside em sua etapa de cópia de dados.

AF_ALG  →  algif_aead  →  mecanismo AES-GCM  →  buffer de saída
                                ↑
                           A FALHA ESTÁ AQUI

Como a Falha Funciona

A falha não está na lógica de criptografia. Está no gerenciamento de memória — a região de memória errada é selecionada durante uma cópia de dados.

Fluxo normal (sem falha):

destination = safe_output_buffer;       // local correto
memcpy(destination, user_data, size);   // dados gravados com segurança

Fluxo vulnerável (com falha):

destination = buffer + WRONG_OFFSET;    // FALHA: ponteiro errado!
memcpy(destination, user_data, size);   // dados caem no page cache

O kernel deveria gravar no buffer de saída seguro. Devido a um offset calculado incorretamente, ele grava no page cache — que contém a cópia em RAM de /usr/bin/su.

O que o atacante altera na memória

O binário contém código de máquina x86-64. O atacante tem como alvo o salto condicional que aciona a falha de autenticação:

Antes do ataque:

cmp  eax, 0     ; verifica o valor de retorno
jne  0x1234     ; se falhar → salta para negar
call give_root  ; concede root

Depois do ataque (2 bytes alterados na RAM):

cmp  eax, 0     ; igual
90 90           ; NOP NOP ← salto substituído, verificação ignorada!
call give_root  ; a CPU chega aqui diretamente

NOP = No Operation (Nenhuma Operação). A CPU não faz nada e avança — ignorando completamente a verificação de autenticação.


Fluxo Completo do Ataque

Mentalidade Pré-Ataque

"Só preciso de uma conta de usuário normal. O kernel cometerá o erro sozinho.
O disco permanece limpo. Sem logs. Funciona todas as vezes."

Etapa 0 — Reconhecimento

whoami && id
# uid=1000(user) gid=1000(user) ← usuário normal

uname -r
# 6.1.0-generic ← dentro da faixa vulnerável

ls -la /usr/bin/su
# -rwsr-xr-x root root ← SetUID confirmado

python3 -c "import socket; s = socket.socket(socket.AF_ALG); print('AF_ALG disponível')"

Etapa 1 — Carregar Arquivo no Page Cache

cat /usr/bin/su > /dev/null
# /usr/bin/su agora está carregado no page cache ✓

Etapa 2 — Engenharia Reversa do Binário

xxd /usr/bin/su | head -50
objdump -d /usr/bin/su | grep -A 20 'check\|auth\|pass'
readelf -h /usr/bin/su

Procurando por: o endereço da função de autenticação, o salto condicional jne/jnz e seu offset exato em bytes.

Etapa 3 — Abrir Socket AF_ALG

import socket, struct

sock = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0)
sock.bind(('aead', 'gcm(aes)', 0, 16))
sock.setsockopt(socket.SOL_ALG, socket.ALG_SET_KEY, b'A' * 16)

Etapa 4 — Enviar Payload Personalizado

Baixar ferramenta