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
GhostShell — CVE-2026-31431 — Escalação de Privilégios Local via Corrupção do Page Cache do Kernel Linux | Kitploit
Ferramentas/GitHubGitHub/razvanduda/ghostshell
Escalada de PrivilégiosFrameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoTestes de PenetraçãoRed TeamingExploração de Binários
GitHubrazvanduda/ghostshell

GhostShell

CVE-2026-31431 — Escalação de Privilégios Local via Corrupção do Page Cache do Kernel Linux

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

GhostShell

CVE-2026-31431 — Escalação de Privilégios Local via Corrupção do Page Cache do Kernel Linux

GhostShell é uma ferramenta de escalação de privilégios local que explora uma falha na implementação de criptografia AEAD authencesn do kernel Linux para obter um shell root a partir de uma conta de usuário sem privilégios. Ela corrompe o page cache em memória de um binário setuid-root (ex.: /usr/bin/su) inserindo shellcode no seu ponto de entrada e, em seguida, o executa — obtendo setuid(0) + setgid(0) e abrindo um /bin/sh privilegiado. Nenhum arquivo em disco é modificado; apenas o page cache em memória é afetado.

Em resumo: você o executa como um usuário normal, e ele o leva a um shell root.

Descoberto e divulgado por Theori / Xint. Artigo completo: copy.fail


Exemplo de Saída

root@kitploit:~
$ ./ghostshell

  CVE-2026-31431 'Copy Fail'

  Target:       /usr/bin/su
  Size:         63576 bytes
  Entry offset: 0x1a50
  Shellcode:    94 bytes (24 iterations)

  [*] Checking if kernel is vulnerable...
  [+] Kernel IS vulnerable.

  [*] Corrupting page cache of /usr/bin/su with shellcode...
  [*] Patching offset 0x01a50 (24/24) ...

  [*] Verifying page cache corruption...
  [+] Shellcode verified in page cache!

  [*] Executing corrupted setuid binary...
  [*] If successful, you should now have a root shell.
  [*] No trace on disk. Only ghosts in the cache.

# id
uid=0(root) gid=0(root) groups=0(root)
# whoami
root
#

Kernels Afetados

Linux 4.14 (agosto de 2017) até kernels corrigidos em abril de 2026.

Correção — Atualizando o kmod

A correção recomendada para o CVE-2026-31431 é atualizar o pacote kmod (utilitários de módulos do kernel), que acompanha o módulo de cifra AEAD authencesn vulnerável. Pacotes atualizados que desabilitam ou corrigem o caminho de descriptografia in-place via splice() foram lançados pelos principais distribuidores.

Correção Rápida (Debian / Ubuntu)

root@kitploit:~
# Verifique a versão atual do kmod
modprobe --version

# Atualize para a versão corrigida
sudo apt-get update
sudo apt-get install --only-upgrade kmod

# Verifique a atualização
modprobe --version

Correção Rápida (RHEL / Fedora / Rocky / Alma)

root@kitploit:~
# Atualize o kmod para a versão corrigida
sudo dnf update kmod

# Verifique
rpm -q kmod

Correção Rápida (Arch Linux)

root@kitploit:~
sudo pacman -Syu kmod

Verifique a Correção do Kernel

Após atualizar o kmod, confirme que o módulo authencesn vulnerável não pode mais ser carregado ou foi atualizado:

root@kitploit:~
# Tente carregar o módulo — em sistemas corrigidos, isso deve falhar ou relatar a versão corrigida
modinfo authencesn

# Alternativamente, verifique se o kernel em execução inclui o patch de abril de 2026
uname -r   # deve ser >= a versão do kernel corrigida para sua distribuição

Solução Alternativa (se a atualização não for possível imediatamente)

Se você não puder atualizar o kmod imediatamente, você pode bloquear o carregamento do módulo de cifra vulnerável:

root@kitploit:~
# Coloque o módulo authencesn na lista negra
echo "install authencesn /bin/true" | sudo tee /etc/modprobe.d/disable-authencesn.conf

# Também coloque o módulo genérico authenc na lista negra por precaução
echo "install authenc /bin/true" | sudo tee -a /etc/modprobe.d/disable-authencesn.conf

# Descarregue-o se estiver carregado (pode falhar se estiver em uso)
sudo modprobe -r authencesn 2>/dev/null

Reinicie após aplicar a correção ou a solução alternativa para garantir que quaisquer entradas de page cache corrompidas sejam limpas.


Testado Em

SOKernel
Ubuntu 24.04 LTS6.17.0-22-generic

⚠️ Este exploit foi somente testado no sistema acima. Os resultados podem variar em outras distribuições ou versões de kernel.


Pré-requisitos

  • Um kernel Linux vulnerável (veja acima)
  • GCC (ou qualquer compilador C)
  • Cabeçalhos UAPI do kernel Linux (<linux/if_alg.h>) — geralmente incluídos com linux-libc-dev
  • Uma conta de usuário sem privilégios (não é necessário root para executar o exploit)

Instale as dependências de build no Ubuntu/Debian:

root@kitploit:~
sudo apt-get update
sudo apt-get install gcc linux-libc-dev

Compilação

root@kitploit:~
gcc -Wall -Wextra -o ghostshell ghostshell.c

Nenhuma biblioteca externa é necessária.


Uso

Detecção automática de alvo (verifica binários setuid comuns como su, sudo, passwd):

root@kitploit:~
./ghostshell

Especifique um alvo manualmente:

root@kitploit:~
./ghostshell /usr/bin/sudo

Se o kernel for vulnerável, você será levado a um shell root (#).


Como Funciona (Resumo)

  1. Verificação de vulnerabilidade — Cria um arquivo temporário, muta seus primeiros 4 bytes via a primitiva AEAD, lê-o de volta para confirmar que o page cache foi modificado.
  2. Seleção de alvo — Detecta automaticamente um binário setuid-root e analisa o cabeçalho ELF64 para encontrar o deslocamento do ponto de entrada _start.
  3. Corrupção do page cache — Escreve 94 bytes de shellcode x86-64 no ponto de entrada, 4 bytes por chamada patch_chunk() (24 iterações), usando a falha de descriptografia in-place via splice() do AF_ALG.
  4. Execução — Chama execl() no binário corrompido. O kernel o carrega do page cache e o shellcode é executado com privilégios setuid-root, abrindo um shell root.

Limpeza

O exploit apenas corrompe o page cache em memória. Uma simples reinicialização o limpa completamente.

Para limpar os caches sem reiniciar:

root@kitploit:~
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'

Se páginas sujas foram gravadas de volta no disco (improvável, mas possível), reinstale o pacote afetado:

root@kitploit:~
sudo apt-get install --reinstall util-linux   # para /usr/bin/su

Aviso Legal

Esta ferramenta é fornecida apenas para fins educacionais e de pesquisa de segurança autorizada. O uso não autorizado contra sistemas que você não possui ou para os quais não tem permissão explícita de teste é ilegal. O autor não assume nenhuma responsabilidade por uso indevido.


Licença

Este projeto é licenciado sob a Licença MIT.

É concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para lidar com o Software sem restrições, incluindo, sem limitação, os direitos de usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender cópias do Software, e permitir que as pessoas a quem o Software for fornecido o façam, sujeito às seguintes condições:

O aviso de direitos autorais acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.

O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIABILIDADE, ADEQUAÇÃO A UM FIM ESPECÍFICO E NÃO VIOLAÇÃO. EM NENHUM CASO OS AUTORES OU DETENTORES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.

Baixar ferramenta