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-68937 — Automatisierter PoC-Exploit für CVE-2025-68937 — Gitea/Forgejo Template Symlink RCE. Jeder authentifizierte Benutzer kann eine Shell als Git-Dienstbenutzer erhalten. | Kitploit
Tools/GitHubGitHub/scratchappy/cve-2025-68937
Privilege EscalationExploitationWebanwendungs-ExploitationPenetrationstestsRed TeamingRemote-Access-Tool
GitHubscratchappy/cve-2025-68937

CVE-2025-68937

Automatisierter PoC-Exploit für CVE-2025-68937 — Gitea/Forgejo Template Symlink RCE. Jeder authentifizierte Benutzer kann eine Shell als Git-Dienstbenutzer erhalten.

Repository anzeigen
7vor 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-68937 - Gitea/Forgejo Template-Symlink-RCE

Automatisierter Proof-of-Concept für CVE-2025-68937: Directory-Traversal über Symlink-Auflösung bei der Template-Repository-Verarbeitung in Gitea und Forgejo, was zu Remote-Codeausführung führt.

Jeder authentifizierte Benutzer (kein Admin erforderlich) kann eine Shell als git-Dienstbenutzer erhalten.

Schwachstelle

Beim Erzeugen eines neuen Repositories aus einem Template kopieren Gitea/Forgejo Templatedateien und expandieren Variablen wie ${REPO_DESCRIPTION} in Dateien, die in .gitea/template aufgelistet sind. Dieser Prozess folgt symbolischen Links ohne Validierung, sodass ein Angreifer beliebige Dateien auf dem Server lesen und beschreiben kann.

DetailWert
CVECVE-2025-68937
CVSS 4.09.5 Kritisch
CWECWE-61 (UNIX Symbolic Link Following)
Auth erforderlichJa (beliebiger Benutzer)
Admin erforderlichNein

Betroffene Versionen

SoftwareBetroffenBehoben
Gitea>= 1.11.0-rc1, <= 1.24.61.24.7
Forgejo<= 11.0.611.0.7
Forgejo>= 12.0.0, <= 13.0.113.0.2

Funktionsweise

root@kitploit:~
                          Gitea Server
                    +---------------------+
 1. Register SSH    |  authorized_keys:   |
    key with        |  command="gitea     |
    ${REPO_DESC}    |  serv..." ssh-ed... |
    as comment      |  ${REPO_DESCRIPTION}|
                    +---------------------+
                              |
 2. Template repo             |  symlink
    authorized_keys --------->+  follows
    -> /data/git/.ssh/        |
       authorized_keys        |
                              v
 3. Create child    +---------------------+
    repo with       |  authorized_keys:   |
    attacker key    |  command="gitea     |
    in description  |  serv..." ssh-ed... |
                    |  <attacker SSH key> | <-- injected!
                    +---------------------+
                              |
 4. SSH as git      $ ssh -i key git@host
    (unrestricted)  uid=0(git) ...
  1. Registrieren Sie einen vergifteten SSH-Schlüssel bei Gitea – der Kommentar des Schlüssels enthält ${REPO_DESCRIPTION}, eine Template-Variable, die Gitea expandiert
  2. Erstellen Sie ein Template-Repository, das Folgendes enthält:
    • .gitea/template, das authorized_keys für die Variablenexpansion auflistet
    • Einen Git-Symlink authorized_keys, der auf die echte authorized_keys-Datei des Git-Benutzers zeigt
  3. Erzeugen Sie ein untergeordnetes Repository aus dem Template, wobei der uneingeschränkte öffentliche SSH-Schlüssel des Angreifers im Beschreibungsfeld steht
  4. Die Template-Expansion folgt dem Symlink, liest die echte authorized_keys-Datei (die unseren registrierten Schlüssel mit ${REPO_DESCRIPTION} im Kommentar enthält), expandiert die Variable zur Beschreibung des untergeordneten Repositories (unser SSH-Schlüssel) und schreibt das Ergebnis über den Symlink zurück
  5. Melden Sie sich per SSH als git an mit dem injizierten Schlüssel (ohne command=-Einschränkung)

Verwendung

root@kitploit:~
pip install requests
root@kitploit:~
# Against Docker Gitea (git home defaults to /data/git)
python3 exploit.py -u http://localhost:3000 -U myuser -P mypassword --ssh-port 2222

# Against package/binary install (git home is /home/git)
python3 exploit.py -u http://gitea.example.com:3000 -U user -P pass --git-home /home/git

# Execute a command after getting shell
python3 exploit.py -u http://target:3000 -U user -P pass --command "cat /etc/shadow"

# Cleanup (removes repos and injected SSH keys)
python3 exploit.py -u http://target:3000 -U user -P pass --cleanup

Optionen

Testumgebung

Starten Sie eine verwundbare Instanz:

root@kitploit:~
docker run -d --name gitea-vuln \
  -p 3000:3000 -p 2222:22 \
  -e USER_UID=1000 -e USER_GID=1000 \
  gitea/gitea:1.24.6
  1. Öffnen Sie http://localhost:3000 und schließen Sie den Installationsassistenten ab (SQLite funktioniert einwandfrei)
  2. Registrieren Sie ein Benutzerkonto
  3. Führen Sie Folgendes aus:
root@kitploit:~
python3 exploit.py -u http://localhost:3000 -U youruser -P yourpass --ssh-port 2222

Voraussetzungen

  • Python 3.8+
  • requests
  • git und ssh-keygen im PATH

Behebung

  • Gitea: auf 1.24.7 oder neuer aktualisieren
  • Forgejo: auf 11.0.7 (LTS) oder 13.0.2+ aktualisieren

Referenzen

  • NVD: CVE-2025-68937
  • GitHub Advisory: GHSA-7mhf-6fhv-c83c
  • Gitea Security Fix Analysis (PR #36734 & #36746)
  • Gitea 1.24.7 Release Notes

Haftungsausschluss

Dieses Tool dient ausschließlich autorisierten Sicherheitstests und Bildungszwecken. Verwenden Sie es nur gegen Systeme, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Genehmigung zum Testen besitzen. Unautorisierter Zugriff auf Computersysteme ist illegal. Der Autor übernimmt keine Haftung für Missbrauch.

Tool herunterladen
FlagStandardBeschreibung
-u, --urlerforderlichBasis-URL von Gitea/Forgejo
-U, --usererforderlichBenutzername
-P, --passworderforderlichPasswort
--git-home/data/gitHome-Verzeichnis des Git-Benutzers auf dem Zielsystem
--ssh-hostaus --urlSSH-Host, mit dem verbunden wird
--ssh-port22SSH-Port von Gitea
--timeout30Sekunden, die auf SSH gewartet wird
--commandinteraktivBefehl, der nach dem Erhalt der Shell ausgeführt wird
--cleanup-Exploit-Artefakte entfernen