Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
copy-fail-checker — Verificador Bash somente leitura para a vulnerabilidade Copy Fail do kernel Linux (CVE-2026-31431) | Kitploit
Ferramentas/GitHubGitHub/samanzamani/copy-fail-checker
Escalada de PrivilégiosScanners de VulnerabilidadesAnálise de VulnerabilidadesExploraçãoScripting e AutomaçãoCriptografiaAprendizado e Educação
GitHubsamanzamani/copy-fail-checker

copy-fail-checker

Verificador Bash somente leitura para a vulnerabilidade Copy Fail do kernel Linux (CVE-2026-31431)

Ver Repositório
51há 3 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

Verificador de Copy Fail — CVE-2026-31431

Um pequeno script Bash com poucas dependências que informa se o seu sistema Linux está exposto à vulnerabilidade de escalada de privilégio local Copy Fail (CVE-2026-31431).

O script é somente leitura: nunca explora a falha, nunca carrega módulos do kernel e nunca modifica o sistema.


O que é Copy Fail?

Copy Fail é um bug lógico no template criptográfico AEAD authencesn do kernel Linux, acessível a partir do espaço do usuário através da interface de socket AF_ALG (algif_aead).

CampoValor
CVECVE-2026-31431
Divulgado2026-04-29
CVSS v3.17.8 (Alta)
ClasseEscalada de Privilégio Local
Componente afetadocrypto/authencesn + crypto/algif_aead
Introduzido em2017 (otimização AEAD in-place em algif_aead.c)
Correção na linha principalcommit a664bf3d603d, mesclado em 2026-04-01

Por que isso importa

Um usuário local não privilegiado pode acionar uma escrita controlada de 4 bytes no cache de páginas de qualquer arquivo que possa ler. Uma prova de conceito pública (732 bytes de Python) usa essa primitiva para sobrescrever um binário setuid e obter root em praticamente todas as distribuições convencionais lançadas desde 2017.

Quem é afetado

Toda distribuição Linux que inclui um kernel construído desde 2017 com algif_aead habilitado. Famílias confirmadamente afetadas incluem:

  • Ubuntu 18.04 → 25.10 (Ubuntu 26.04 "Resolute" não é afetado)
  • Debian (todos os conjuntos atualmente suportados)
  • RHEL / AlmaLinux / Rocky / CentOS Stream 8, 9, 10
  • SUSE Linux Enterprise / openSUSE
  • Amazon Linux 2023
  • A maioria dos hosts de contêineres e imagens de nós Kubernetes gerenciados derivados dos acima

Início rápido

root@kitploit:~
# Baixar o script
curl -fsSLO https://raw.githubusercontent.com/samanzamani/copy-fail-checker/main/check-copy-fail.sh

# Torná-lo executável
chmod +x check-copy-fail.sh

# Executá-lo
./check-copy-fail.sh

Ou clone o repositório:

root@kitploit:~
git clone https://github.com/samanzamani/copy-fail-checker.git
cd copy-fail-checker
./check-copy-fail.sh

O script não requer root. Executá-lo como seu usuário normal fornece a visão mais realista da superfície de ataque, porque é exatamente o contexto que um atacante teria.


O que o script verifica

O script executa três verificações independentes e as combina em um único veredito.

1. Versão do kernel

Ele lê /etc/os-release e uname -r, depois compara seu kernel em execução com a versão corrigida oficial publicada pela equipe de segurança da sua distribuição. A tabela de versões atualmente cobre:

Se sua distribuição não estiver na tabela, o script recorre às verificações de tempo de execução abaixo.

2. Status do módulo algif_aead

O script inspeciona quatro coisas sem modificar nada:

  • Se o módulo está atualmente carregado (lsmod)
  • Se o módulo está disponível para carregar (modinfo)
  • Se o módulo está na lista negra em /etc/modprobe.d, /usr/lib/modprobe.d ou /run/modprobe.d
  • Se o módulo está embutido em /boot/config-<uname> ou /proc/config.gz

Um módulo na lista negra, não carregado e não embutido fecha a superfície de ataque mesmo em um kernel não corrigido.

3. Acessibilidade do socket AF_ALG

O sinal mais confiável é o que um atacante realmente veria. O script usa uma pequena sonda Python (socket.socket(AF_ALG, SOCK_SEQPACKET, 0) seguida de bind() no template AEAD authencesn(hmac(sha256),cbc(aes))) para descobrir se sockets AF_ALG podem ser criados e vinculados a partir de um contexto não privilegiado. A sonda cria, vincula e imediatamente fecha o socket sem deixar nada explorável.

Se python3 não estiver instalado, a sonda é ignorada e o veredito depende das verificações 1 e 2.


Possíveis vereditos


Saída JSON para automação

Para pipelines, gerenciamento de configuração ou varredura de frotas, use --json:

root@kitploit:~
./check-copy-fail.sh --json

Exemplo de saída:

root@kitploit:~
{
  "verdict": "vulnerable",
  "distro_id": "ubuntu",
  "distro_version_id": "24.04",
  "kernel": "6.8.0-31-generic",
  "patched_version": "",
  "kernel_status": "unknown",
  "module_loaded": 0,
  "module_builtin": 0,
  "module_available": 1,
  "module_blacklisted": 0,
  "af_alg_status": "reachable"
}

Mitigação

Recomendado: instale a atualização do kernel do fornecedor

Esta é a única correção completa. Após a atualização, reinicie para que o novo kernel esteja realmente em execução.

root@kitploit:~
# Debian / Ubuntu
sudo apt update && sudo apt full-upgrade && sudo reboot

# RHEL / AlmaLinux / Rocky / CentOS Stream
sudo dnf clean metadata && sudo dnf upgrade && sudo reboot

# openSUSE / SLES
sudo zypper refresh && sudo zypper update && sudo reboot

# Amazon Linux 2023
sudo dnf upgrade --releasever=latest && sudo reboot

Solução temporária: desabilitar algif_aead

Se você não puder reiniciar em um kernel corrigido agora, coloque o módulo vulnerável na lista negra. Isso quebra qualquer aplicação que use legitimamente cifras AEAD AF_ALG (raro na maioria dos servidores — verifique primeiro em um ambiente de teste).

root@kitploit:~
# Persistir a lista negra entre reinicializações
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf

# Descarregá-lo do kernel em execução agora
sudo rmmod algif_aead 2>/dev/null || true

Se o módulo for embutido, a lista negra não funcionará, mas é possível desabilitar a initcall. Uma reinicialização é necessária.

root@kitploit:~
sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"

sudo reboot

Para cargas de trabalho conteinerizadas, também bloqueie a família de sockets AF_ALG em seu perfil seccomp para que um contêiner comprometido não possa alcançar a superfície do kernel.


Execução de exemplo

root@kitploit:~
== System information ==
[INFO]    Distribution : Ubuntu 24.04.2 LTS (ubuntu 24.04)
[INFO]    Kernel       : 6.8.0-31-generic

== Check 1 / 3 — Kernel version ==
[WARN]    No vendor-fixed kernel version is recorded for ubuntu 24.04.
[WARN]    Falling back to runtime mitigation checks below.

== Check 2 / 3 — algif_aead kernel module ==
[WARN]    algif_aead is not loaded but can be autoloaded on demand (no blacklist found).

== Check 3 / 3 — AF_ALG socket reachability ==
[VULN]    AF_ALG sockets are reachable from this unprivileged context.

== Verdict ==
[VULN]    This system appears to be VULNERABLE to CVE-2026-31431.
[VULN]    Apply the vendor kernel update or blacklist algif_aead as a temporary mitigation.

Limitações

  • A tabela de versões corrigidas cobre apenas as famílias listadas acima. PRs para estendê-la são bem-vindos.
  • O script confia em uname -r. Se você estiver executando um kernel fora da árvore ou reconstruído, a comparação de versão pode não refletir se a correção foi realmente retroportada.
  • Ambientes de contêiner/sandbox ao vivo podem reportar blocked_permission para AF_ALG simplesmente porque o seccomp está em vigor — o kernel do host em si ainda pode estar vulnerável.

Referências

  • Aviso CERT-EU 2026-005
  • Divulgação Xint: 732 bytes para root em todas as principais distribuições Linux
  • AlmaLinux: correções para CVE-2026-31431 lançadas
  • Ubuntu: correções para vulnerabilidade Copy Fail disponíveis
  • Blog de Segurança Microsoft: Copy Fail em ambientes de nuvem
  • Sophos: exploit PoC disponível
  • Resposta da SUSE ao copy.fail
  • Cobertura do The Hacker News
  • Bugcrowd: O que sabemos sobre Copy Fail
  • Cobertura do The Register

Licença

MIT — use, modifique e distribua livremente. Sem garantias.

Baixar ferramenta
DistribuiçãoKernel corrigido (≥)
AlmaLinux / RHEL / Rocky / CentOS 84.18.0-553.121.1.el8_10
AlmaLinux / RHEL / Rocky / CentOS 95.14.0-611.49.2.el9_7
AlmaLinux / RHEL / Rocky / CentOS 106.12.0-124.52.2.el10_1
Ubuntu 26.04+ ("Resolute")não afetado
Ubuntu 18.04 – 25.10contínuo, veja apt
Debian (todos os conjuntos)contínuo, veja DSA
VereditoCódigo de saídaSignificado
patched0Kernel em execução está na versão corrigida pelo fornecedor ou superior.
mitigated0AF_ALG está bloqueado e o módulo não está carregado.
likely_mitigated0Módulo está na lista negra e não está carregado; nenhuma sonda ao vivo foi possível.
vulnerable1Kernel não está corrigido e algif_aead / AF_ALG está acessível.
unknown2Sinal insuficiente para decidir. Tratar como potencialmente vulnerável.
not_applicable3Não está executando no Linux.