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-cve-2026-31431 — Port Go do PoC Copy Fail para CVE-2026-31431, uma falha do authencesn do kernel Linux que permite uma escrita de 4 bytes no cache de páginas via AF_ALG e splice. Inclui pipeline de build multi-arquitetura e documentação técnica detalhada. | Kitploit
Ferramentas/GitHubGitHub/erdemozgen/copy-fail-cve-2026-31431
Frameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoAprendizado e EducaçãoExploração de Binários
GitHuberdemozgen/copy-fail-cve-2026-31431

copy-fail-cve-2026-31431

Port Go do PoC Copy Fail para CVE-2026-31431, uma falha do authencesn do kernel Linux que permite uma escrita de 4 bytes no cache de páginas via AF_ALG e splice. Inclui pipeline de build multi-arquitetura e documentação técnica detalhada.

Ver RepositórioSite
8há 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

Copy Fail - CVE-2026-31431

Este repositório fornece um port em Go do PoC público do Copy Fail e um pipeline de build reproduzível para binários Linux de múltiplas arquiteturas.

Copy Fail (CVE-2026-31431) é uma falha lógica no kernel Linux em authencesn que permite uma escrita determinística de 4 bytes em dados de page cache referenciados através de AF_ALG + splice().

Uso Responsável

Use este projeto apenas em ambientes onde você está explicitamente autorizado a testar. Não execute este PoC contra sistemas que você não possui ou para os quais não tem permissão por escrito para avaliar.

Teste Rápido (Sem Build)

Se você quiser testar imediatamente sem compilar a partir do código-fonte, baixe um binário de release e execute-o:

root@kitploit:~
wget https://github.com/ErdemOzgen/copy-fail-cve-2026-31431/releases/download/v1.0.1/copy-fail-cve-2026-31431_linux_amd64
chmod +x copy-fail-cve-2026-31431_linux_amd64
./copy-fail-cve-2026-31431_linux_amd64

Para outras arquiteturas, baixe o artefato correspondente na página de Releases do GitHub:

https://github.com/ErdemOzgen/copy-fail-cve-2026-31431/releases

Conteúdo

  • Teste Rápido (Sem Build)
  • Pré-requisitos de Build
  • Build Local
  • Uso
  • Solução de Problemas
  • Visão Geral
  • Por Que Isso Importa
  • Causa Raiz
  • Caminho de Gatilho em authencesn
  • Como o Bug Se Tornou Acessível
  • Fluxo de Exploração em Alto Nível
  • Resumo da Correção
  • Remediação
  • Linha do Tempo de Divulgação
  • Como Foi Encontrado
  • Estrutura do Repositório
  • GitHub Actions
  • Distribuições Testadas
  • Referências

Pré-requisitos de Build

  • Go 1.23+
  • GNU Make

Build Local

Compilar todos os alvos Linux:

root@kitploit:~
make clean build-linux

Compilar e gerar checksums:

root@kitploit:~
make clean checksums

Binários de saída em dist/:

  • copy-fail-cve-2026-31431_linux_amd64
  • copy-fail-cve-2026-31431_linux_arm64
  • copy-fail-cve-2026-31431_linux_386
  • copy-fail-cve-2026-31431_linux_armv7
  • SHA256SUMS

Uso

Execução padrão:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64

Usar um caminho de alvo personalizado:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64 -target /path/to/binary

Desabilitar a execução de su após a execução:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64 -spawn-su=false

Imprimir metadados de build:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64 -version

Solução de Problemas

Se a execução falhar no offset 0 com um erro semelhante a:

root@kitploit:~
error: copy chunk at offset 0: splice(pipe->AF_ALG): software caused connection abort

o kernel provavelmente rejeitou o caminho AEAD in-place vulnerável (por exemplo, porque o host está corrigido para CVE-2026-31431 ou algif_aead está mitigado/desabilitado).

Verificações rápidas:

root@kitploit:~
uname -r
grep -E "algif_aead|authencesn" /proc/modules

Em sistemas remediados, espera-se que este PoC falhe.

Visão Geral

De acordo com a divulgação pública, o caminho vulnerável permite que um usuário local sem privilégios influencie uma primitiva de escrita de 4 bytes no conteúdo de page cache de arquivos legíveis sob condições específicas.

A propriedade operacional importante é que a cópia em memória do page cache pode divergir dos bytes em disco durante a execução, o que pode tornar a análise de impacto não trivial para equipes que dependem apenas de verificações de integridade em nível de disco.

Por Que Isso Importa

Copy Fail é notável porque foi relatado como:

  • Determinístico (sem requisito de corrida no caminho de gatilho descrito).
  • Portátil entre as principais distribuições Linux nos testes.
  • Compacto na implementação, sem dependência de builder de payload externo.
  • Relevante além do escopo de um único processo devido ao comportamento compartilhado do page cache.

Causa Raiz

Em alto nível, o problema está na interseção de três mecânicas:

  1. Manipulação de requisições AEAD AF_ALG.
  2. Movimentação de dados com suporte de page cache via splice().
  3. Comportamento de scratch de descriptografia em authencesn.

No design vulnerável, segmentos com suporte de page cache podem ser vinculados a uma forma de requisição que posteriormente recebe escritas durante o processamento do algoritmo, violando uma suposição chave de que apenas regiões de destino pretendidas são modificadas.

Caminho de Gatilho em authencesn

No caminho documentado, authencesn usa operações de scratch no lado do destino em torno da manipulação do layout ESN e realiza uma escrita em um offset além do contrato esperado de saída de descriptografia.

Quando combinado com a configuração AEAD in-place e referências encadeadas de scatterlist, essa escrita pode atingir memória com suporte de page cache para regiões selecionadas pelo atacante.

Como o Bug Se Tornou Acessível

A divulgação descreve uma evolução de múltiplos commits:

  • O comportamento de authencesn originou-se em histórico de integração anterior.
  • O suporte AEAD AF_ALG introduziu acessibilidade a partir do espaço do usuário com interação splice().
  • A otimização in-place posterior em algif_aead combinou o fluxo de origem e destino de uma forma que tornou essa interseção explorável.

A lição chave é o risco composicional: mudanças individualmente razoáveis podem se tornar inseguras em combinação.

Fluxo de Exploração em Alto Nível

O write-up público e o PoC descrevem esta sequência:

  1. Abrir e configurar um socket AEAD AF_ALG para authencesn(hmac(sha256),cbc(aes)).
  2. Fornecer metadados elaborados e dados em blocos.
  3. Usar splice() para rotear dados de arquivo com suporte de page cache através do caminho de requisição.
  4. Acionar o tratamento de descriptografia e repetir em etapas controladas de 4 bytes.

A implementação em Go deste repositório espelha a lógica do PoC público para pesquisa e validação em ambientes autorizados.

Resumo da Correção

A correção relatada reverte a operação AEAD in-place vulnerável em algif_aead para o comportamento out-of-place.

Conceitualmente:

  • Antes da correção: origem e destino podiam colapsar em uma única cadeia gravável para este caminho.
  • Após a correção: origem e destino permanecem separados, impedindo que segmentos de origem com suporte de page cache sejam usados como regiões de destino graváveis neste fluxo.

Remediação

  • Aplicar patches nos kernels para versões que contenham a correção upstream.
  • Distribuir atualizações de pacotes de kernel do fornecedor em toda a frota e imagens.
  • Considerar controles temporários de endurecimento (por exemplo, restrições de política no uso de AF_ALG onde operacionalmente viável).
  • Validar a remediação com verificações em tempo de execução, não apenas fluxos de checksum em disco.

Linha do Tempo de Divulgação

Com base no write-up público:

DataEvento
2026-03-23Relatório enviado à equipe de segurança do kernel Linux
2026-03-24Confirmação inicial
2026-03-25Discussão/revisão do patch
2026-04-01Correção commitada ao mainline
2026-04-22CVE-2026-31431 atribuído
2026-04-29Divulgação pública

Como Foi Encontrado

A pesquisa publicada credita análise de subsistema assistida por IA e guiada por humanos, focada em caminhos de código criptográfico acessíveis a partir do espaço do usuário e proveniência de scatterlist/página sob splice().

Estrutura do Repositório

  • main.go: Port do PoC em Go.
  • Makefile: alvos de build Linux multi arquitetura determinísticos.
  • .github/workflows/build.yml: fluxo de trabalho de build CI e artefatos de release.

GitHub Actions

Arquivo de fluxo de trabalho: .github/workflows/build.yml

Gatilhos:

  • Pull requests
  • Push para main
  • Push de tag correspondente a v*
  • workflow_dispatch manual

Comportamento:

  1. Compila todos os binários Linux com checksums via make clean checksums.
  2. Envia artefatos de CI nomeados com ref + commit SHA.
  3. Publica automaticamente os ativos de release para tags correspondentes a v*.

Fluxo de release sugerido:

root@kitploit:~
git tag v1.0.0
git push origin v1.0.0

Distribuições Testadas

DistribuiçãoVersão do Kernel
Ubuntu 24.04 LTS6.17.0-1007-aws
Amazon Linux 20236.18.8-9.213.amzn2023
RHEL 10.16.12.0-124.45.1.el10_1
SUSE 166.12.0-160000.9-default

Referências

  • Artigo público original: https://xint.io/blog/copy-fail-linux-distributions
  • Entrada CVE: CVE-2026-31431
Baixar ferramenta