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
Ferramentas/GitHubGitHub/0xfuffm3/cve-2026-31431-copyfail
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoTestes de PenetraçãoAprendizado e EducaçãoEscape de ContêinerExploração de BináriosLabs e Prática

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
0xfuffm3/cve-2026-31431-copyfail

CVE-2026-31431-CopyFail

Prova de conceito de exploit para CVE-2026-31431 (Copy Fail), uma LPE do kernel Linux via corrupção de page-cache em algif_aead, com orientações de detecção, laboratório e mitigação.

Ver Repositório
6há 3 mesesAinda não revisado
root@kitploit:~
                     ██████╗ ██████╗ ██████╗ ██╗   ██╗    ███████╗ █████╗ ██╗██╗
                    ██╔════╝██╔═══██╗██╔══██╗╚██╗ ██╔╝    ██╔════╝██╔══██╗██║██║
                    ██║     ██║   ██║██████╔╝ ╚████╔╝     █████╗  ███████║██║██║
                    ██║     ██║   ██║██╔═══╝   ╚██╔╝      ██╔══╝  ██╔══██║██║██║
                         ╚██████╗╚██████╔╝██║        ██║       ██║     ██║  ██║██║███████╗
                          ╚═════╝ ╚═════╝ ╚═╝        ╚═╝       ╚═╝     ╚═╝  ╚═╝╚═╝╚══════╝

CVE-2026-31431 — "Copy Fail"

Escalação Local de Privilégios no Kernel Linux via Corrupção do Cache de Página algif_aead


CVE CVSS Kernel License Status


⚠️ USO AUTORIZADO APENAS — Este repositório é estritamente para testadores de penetração, pesquisadores de segurança e defensores operando sob autorização legal. O uso indevido é crime.


📖 Tabela de Conteúdo


🔍 O que é Copy Fail?

Copy Fail é uma vulnerabilidade de escalação local de privilégios (LPE) divulgada em 29 de abril de 2026, afetando praticamente todas as principais distribuições Linux que executam kernels desde 2017.

root@kitploit:~
Usuário Não Privilegiado  ──►  AF_ALG + splice()  ──►  Escrita de 4 bytes no Cache de Página  ──►  ROOT

Principais Fatos num Relance

Por Que Isto é Perigoso

  • 🕵️ Furtivo — A modificação existe apenas no cache de página; o arquivo em disco nunca é alterado. A forense padrão de disco não o detectará.
  • ⚡ Confiável — Falha lógica determinística, não uma condição de corrida. A exploração é consistente entre ambientes.
  • 🌐 Universal — Afeta Ubuntu, RHEL, Amazon Linux, SUSE, Debian — todas as principais distros desde 2017.
  • ☸️ Impacto em Cloud/K8s — Pode facilitar a fuga de contêineres em cargas de trabalho Kubernetes e runners CI/CD.
  • 🤖 Descoberto por IA — Encontrado pelo sistema de IA da Xint Code com ~1 hora de varredura e um único prompt do operador.

🔬 Análise Técnica Detalhada

Causa Raiz

A vulnerabilidade decorre de uma otimização in-place defeituosa introduzida em 2017 (commit 72548b093ee3) dentro do módulo algif_aead da API de criptografia do espaço do usuário do kernel Linux (AF_ALG).

root@kitploit:~
AF_ALG (API de criptografia do espaço do usuário)
└── módulo algif_aead
    └── template authencesn  ◄── VULNERÁVEL
        └── otimização in-place (2017)
            └── req->src == req->dst  ◄── páginas de splice() encadeadas no scatterlist dst gravável

Fluxo do Ataque

root@kitploit:~
Passo 1: Abrir socket AF_ALG AEAD
        socket(AF_ALG, SOCK_SEQPACKET, 0)

Passo 2: Enviar páginas splice() referenciando o arquivo alvo
        (páginas do cache de página de um binário privilegiado, ex. /usr/bin/sudo)

Passo 3: Acionar escrita temporária de authencesn
        authencesn usa o buffer dst como área de rascunho →
        escreve 4 bytes controlados ALÉM da região legítima de saída

Passo 4: A entrada do cache de página para o arquivo alvo agora está corrompida
        (arquivo no disco intacto — apenas a cópia em memória foi modificada)

Passo 5: Executar o binário modificado → ROOT

Por Que o Cache de Página?

O cache de página do kernel Linux armazena cópias em memória de arquivos. Quando um arquivo é lido, suas páginas são armazenadas em cache. A chamada de sistema splice() pode referenciar diretamente essas páginas em cache. Ao alimentar páginas do cache de página no scatterlist do AEAD do AF_ALG, a escrita temporária do authencesn cai dentro dessas páginas em cache, efetivamente corrigindo a cópia em memória de qualquer arquivo legível — incluindo binários privilegiados como sudo, pkexec ou passwd.

A Correção

A correção upstream reverte a otimização defeituosa de 2017:

root@kitploit:~
# Corrigido no commit: a664bf3d603d
git show a664bf3d603d

🖥️ Sistemas Afetados

Versões do Kernel Linux

Matriz de Distribuições


📁 Estrutura do Repositório

root@kitploit:~
CVE-2026-31431-CopyFail/
│
├── 📄 README.md                          ← Você está aqui
├── 📄 LICENSE                            ← Licença de Pesquisa/Educacional
├── 📄 DISCLAIMER.md                      ← Política de uso legal e ético
├── 📄 CHANGELOG.md                       ← Histórico de versões
│
├── 📂 docs/
│   ├── vulnerability-analysis.md         ← Análise aprofundada: causa raiz e mecânica
│   ├── exploitation-walkthrough.md       ← Metodologia passo a passo
│   ├── affected-kernels.md               ← Matriz completa de versões de kernel/distro
│   ├── detection.md                      ← Cobertura de Defender, Tenable, Wazuh
│   └── references.md                     ← Todos os CVEs, blogs, avisos
│
├── 📂 exploit/
│   ├── README.md                         ← Uso, pré-requisitos, distros testadas
│   ├── copyfail.py                       ← PoC de referência (educacional)
│   ├── trigger.c                         ← Gatilho em C para AF_ALG + splice()
│   └── variants/
│       ├── ubuntu.py                     ← Variante específica para Ubuntu
│       ├── rhel.py                       ← Variante para RHEL/CentOS
│       └── amazon_linux.py              ← Variante para Amazon Linux
│
├── 📂 detection/
│   ├── yara/
│   │   └── copyfail.yar                  ← Regra YARA para artefatos do exploit
│   ├── sigma/
│   │   └── copyfail_lpe.yml              ← Regra Sigma para SIEM/SOC
│   └── scripts/
│       ├── check_vulnerable.sh           ← Verificação rápida de vulnerabilidade do kernel
│       └── detect_algif_aead.sh         ← Verificar se o módulo está carregado/ativo
│
├── 📂 mitigation/
│   ├── README.md                         ← Visão geral da mitigação
│   ├── disable_algif_aead.sh             ← Desativar o módulo de kernel afetado
│   ├── patch-notes.md                    ← Detalhes do patch upstream
│   └── kubernetes-hardening.md          ← Hardening para K8s / contêineres
│
├── 📂 lab/
│   ├── Vagrantfile                       ← VM vulnerável reproduzível
│   ├── setup.sh                          ← Script de bootstrap do laboratório
│   └── docker/
│       └── Dockerfile                    ← Contêiner Ubuntu vulnerável
│
├── 📂 reports/
│   ├── pentest-report-template.md        ← Modelo de relatório pronto para cliente
│   └── sample-finding.md                ← Exemplo de redação de descoberta
│
└── 📂 assets/
    ├── demo.gif                          ← (Opcional) demonstração em terminal
    └── diagrams/
        └── page-cache-write.png         ← Diagrama do fluxo do ataque

🧪 Configuração de Laboratório

Sempre teste em um ambiente isolado e autorizado. Nunca execute exploits em sistemas de produção.

Opção A — VM Vagrant (Recomendado)

root@kitploit:~
# Clonar o repositório
git clone https://github.com/0xFuffM3/CVE-2026-31431-CopyFail.git
cd CVE-2026-31431-CopyFail

# Iniciar a VM de laboratório vulnerável
cd lab/
vagrant up

# SSH para o laboratório
vagrant ssh

# Verificar versão do kernel (deve estar vulnerável)
uname -r

Opção B — Contêiner Docker

root@kitploit:~
cd lab/docker/

# Construir imagem do contêiner vulnerável
docker build -t copyfail-lab .

# Executar com privilégios necessários para interação com o kernel
docker run --rm -it --privileged copyfail-lab /bin/bash

Verificar se Seu Sistema Está Vulnerável

root@kitploit:~
# Executar o script de verificação rápida
chmod +x detection/scripts/check_vulnerable.sh
./detection/scripts/check_vulnerable.sh

Saída esperada em um sistema vulnerável:

root@kitploit:~
[!] Versão do kernel: 5.15.0-91-generic
[!] Módulo algif_aead: CARREGADO
[✗] O sistema parece VULNERÁVEL ao CVE-2026-31431 (Copy Fail)
[*] Ação recomendada: Aplicar atualização do kernel ou desativar algif_aead

Saída esperada em um sistema corrigido:

root@kitploit:~
[✓] Versão do kernel: 6.1.132
[✓] O sistema parece CORRIGIDO contra o CVE-2026-31431 (Copy Fail)

💥 Uso do Exploit

Requer: Acesso local como usuário não privilegiado em um sistema vulnerável.

Pré-requisitos

root@kitploit:~
# Python 3.6+
python3 --version

# Módulos de kernel necessários presentes
lsmod | grep algif_aead

# Verificar se o binário alvo é legível
ls -la /usr/bin/sudo

Executando o PoC

root@kitploit:~
cd exploit/

# Verificar nível de privilégio atual
id
# uid=1000(usuário) gid=1000(usuário) groups=1000(usuário)

# Executar o PoC Copy Fail
python3 copyfail.py

# Verificar escalação de privilégio
id
# uid=0(root) gid=0(root) groups=0(root)

Fluxo de Pentest

root@kitploit:~
1. Enumerar versão do kernel
   └─► uname -r / cat /proc/version

2. Verificar se algif_aead está carregado
   └─► lsmod | grep algif_aead

3. Confirmar ponto de apoio de baixo privilégio
   └─► id / whoami

4. Executar o PoC Copy Fail
   └─► python3 exploit/copyfail.py

5. Verificar acesso root
   └─► id && cat /etc/shadow

6. Documentar evidências
   └─► Captura de tela + registrar versão do kernel, distro, hash do exploit

7. Aplicar mitigação (pós-teste)
   └─► sudo bash mitigation/disable_algif_aead.sh

8. Incluir no relatório de pentest
   └─► Usar reports/pentest-report-template.md

🔎 Detecção

Regra YARA

root@kitploit:~
// detection/yara/copyfail.yar
rule CopyFail_CVE_2026_31431 {
    meta:
        description = "Detecta artefatos do exploit Copy Fail (CVE-2026-31431)"
        author      = "0xFuffM3"
        date        = "2026-04-30"
        reference   = "https://copy.fail"
    strings:
        $py1 = "algif_aead" ascii
        $py2 = "AF_ALG" ascii
        $py3 = "splice" ascii
        $py4 = "page_cache" ascii
        $py5 = "authencesn" ascii
    condition:
        3 of them
}

Executar varredura YARA:

root@kitploit:~
yara detection/yara/copyfail.yar /tmp/ -r

Regra Sigma (SIEM)

root@kitploit:~
# detection/sigma/copyfail_lpe.yml
title: Execução do Exploit Copy Fail LPE (CVE-2026-31431)
status: stable
logsource:
    category: process_creation
    product: linux
detection:
    selection:
        CommandLine|contains:
            - 'AF_ALG'
            - 'algif_aead'
            - 'authencesn'
    condition: selection
falsepositives:
    - Testes legítimos de API de criptografia
level: high

Script de Detecção Rápida

root@kitploit:~
chmod +x detection/scripts/detect_algif_aead.sh
./detection/scripts/detect_algif_aead.sh

Cobertura de Ferramentas de Segurança


🛡️ Mitigação

Opção 1 — Aplicar Patch do Kernel (Recomendado)

root@kitploit:~
# Ubuntu / Debian
sudo apt-get update && sudo apt-get upgrade linux-image-generic

# RHEL / CentOS
sudo yum update kernel

# Amazon Linux
sudo yum update kernel

# Após a atualização, reiniciar
sudo reboot

Opção 2 — Desativar Módulo algif_aead (Interino)

root@kitploit:~
# Executar o script de mitigação
chmod +x mitigation/disable_algif_aead.sh
sudo bash mitigation/disable_algif_aead.sh

O que o script faz:

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || echo "[*] Módulo não carregado no momento"
echo "[✓] algif_aead desativado. Reinicie para confirmar persistência."

Opção 3 — Hardening de Kubernetes

Consulte mitigation/kubernetes-hardening.md para:

  • Restringir a criação de sockets AF_ALG em políticas de segurança de pods
  • Perfil Seccomp para bloquear a chamada de sistema socket(AF_ALG, ...)
  • Aplicação prioritária de patches para nós Kubernetes e runners CI/CD

📝 Relatórios de Pentest

Um modelo de relatório para cliente pronto para uso está em reports/pentest-report-template.md.

Resumo de Exemplo de Descoberta

root@kitploit:~
Descoberta:  Escalação Local de Privilégios via Copy Fail (CVE-2026-31431)
Severidade:  ALTO (CVSS 7.8)
Host:        10.10.10.55 (ubuntu-prod-01)
Kernel:      5.15.0-91-generic

Evidências:
  - Shell não privilegiado (uid=1000) escalado para root (uid=0)
  - Módulo de kernel algif_aead confirmado como carregado
  - Nenhum artefato em disco — apenas cache de página

Recomendação:
  1. Aplicar patch do kernel do fornecedor imediatamente
  2. Interino: desativar módulo algif_aead
  3. Revisar nós Kubernetes e runners CI/CD

⚖️ Legal e Ética

Leia antes de usar qualquer coisa neste repositório.

Este repositório é publicado exclusivamente para fins legítimos de pesquisa de segurança, testes de penetração autorizados e segurança defensiva.

  • ✅ Permitido: Testar em sistemas de sua propriedade ou com autorização explícita por escrito
  • ✅ Permitido: Pesquisa de segurança em ambientes de laboratório isolados
  • ✅ Permitido: Uso defensivo — detecção, correção, hardening
  • ❌ Proibido: Testar em sistemas sem autorização por escrito
  • ❌ Proibido: Implantar exploits contra sistemas de produção
  • ❌ Proibido: Qualquer uso que viole leis locais, nacionais ou internacionais

O uso não autorizado deste material pode violar o Computer Fraud and Abuse Act (CFAA), a Diretiva 2013/40/EU da UE, a Lei de TI Indiana de 2000 e leis equivalentes em sua jurisdição.

Os autores não assumem nenhuma responsabilidade pelo uso indevido. Consulte DISCLAIMER.md para o aviso legal completo.


📚 Referências


🤝 Contribuindo

Pesquisadores de segurança são bem-vindos para contribuir:

  1. Faça um fork do repositório
  2. Crie um branch de funcionalidade: git checkout -b feat/sua-contribuicao
  3. Commit suas alterações: git commit -m "Adicionar: regra de detecção para X"
  4. Faça push e abra um Pull Request

Por favor, siga as normas de divulgação responsável. Não inclua código de exploit armazenado e pronto para produção visando sistemas corrigidos.


Feito para a comunidade de segurança — use com responsabilidade.

Follow

Baixar ferramenta
#SeçãoDescrição
1O que é Copy Fail?Resumo da vulnerabilidade
2Análise Técnica DetalhadaAnálise de causa raiz
3Sistemas AfetadosMatriz de distribuições e kernels
4Estrutura do RepositórioLayout de arquivos
5Configuração de LaboratórioReprodução segura
6Uso do ExploitFluxo de pentest
7DetecçãoYARA, Sigma, scripts
8MitigaçãoPatch e hardening
9Relatórios de PentestModelos de relatório
10Legal e ÉticaAviso legal
11ReferênciasCVEs, avisos, blogs
PropriedadeDetalhe
ID CVECVE-2026-31431
ApelidoCopy Fail
CVSS v3.17.8 (ALTO)
Vetor de AtaqueLocal
Privilégios NecessáriosBaixo (qualquer usuário não privilegiado)
Interação do UsuárioNenhum
DescobridorXint Code (Theori)
Divulgado29 de abril de 2026
Tamanho do Exploit732 bytes (PoC em Python)
Status do Patch✅ Disponível — reverta o commit a664bf3d603d
Ramo do KernelAfetado?Versão Corrigida
4.9.x (LTS)✅ Sim4.9.340+
5.4.x (LTS)✅ Sim5.4.295+
5.10.x (LTS)✅ Sim5.10.239+
5.15.x (LTS)✅ Sim5.15.185+
6.1.x (LTS)✅ Sim6.1.132+
6.6.x (LTS)✅ Sim6.6.83+
6.12.x (LTS)✅ Sim6.12.19+
< 4.9 (pré-2017)❌ NãoN/A — otimização não presente
DistribuiçãoVersões AfetadasCorrigido?Aviso
Ubuntu< 26.04 (todas as versões)✅ CorrigidoUSN
Ubuntu 26.04 (Resolute)❌ Não afetado——
RHEL / CentOS7, 8, 9✅ CorrigidoRHSA-2026
Amazon Linux2, 2023✅ CorrigidoALAS
SUSE / openSUSETodas afetadas✅ CorrigidoSUSE-SU
DebianBullseye, Bookworm✅ CorrigidoDSA
CloudLinux8, 9✅ CorrigidoAviso
FerramentaSuporte de Detecção
Microsoft Defender (MDVM)✅ Sim
Tenable Nessus✅ Sim
Qualys✅ Sim
Wazuh✅ Via regra Sigma personalizada
Palo Alto Cortex XDR✅ Sim
CrowdStrike Falcon✅ Sim
FonteLink
Divulgação Original (Xint/Theori)copy.fail
Artigo Técnico da Xint Codexint.io/blog/copy-fail
Entrada NVDnvd.nist.gov
Blog de Segurança da Microsoftmicrosoft.com/security/blog
Aviso da Ubuntuubuntu.com/blog
Aviso da CERT-EUcert.europa.eu
FAQ da Tenabletenable.com/blog
Palo Alto Unit 42unit42.paloaltonetworks.com
Aviso da CloudLinuxblog.cloudlinux.com
Análise da Bugcrowdbugcrowd.com/blog
Patch do Kernel Linuxkernel.org — commit a664bf3d603d