Kritische RCE-Schwachstelle in Gogs offengelegt: Ungepatchte Lücke ermöglicht vollständige Übernahme von Repositories
Eine kritische Remote Code Execution (RCE)-Schwachstelle wurde in **Gogs**, einem selbst gehosteten Git-Dienst, entdeckt. Authentifizierte Benutzer könnten dadurch beliebigen Code ausführen. Die Schwachstelle, für die derzeit noch keine **CVE**-Kennung vorliegt, stellt ein erhebliches Risiko für Gogs-Instanzen mit Standardkonfigurationen dar.

### Gogs RCE-Schwachstelle: Eine detaillierte Analyse
Der Sicherheitsforscher Jonah Burgess von **Rapid7** hat eine kritische Schwachstelle in **Gogs**, einem Open-Source-Git-Dienst zum Selbsthosten, offengelegt. Die Lücke ermöglicht es jedem authentifizierten Benutzer, Remote Code Execution (RCE) auf dem Server zu erreichen. Die Schwachstelle ergibt sich aus der Möglichkeit, das `--exec`-Flag in `git rebase` während des Vorgangs 'Rebase vor dem Mergen' einzuschleusen, indem ein Pull-Request mit einem bösartigen Branch-Namen erstellt wird. **Rapid7** bewertet die Schwachstelle mit 9,4 auf dem CVSS-Bewertungssystem.
### Verständnis des Angriffsvektors
Der Angriff nutzt die `git rebase`-Funktionalität aus, die Änderungen von einem Branch in einen anderen integriert. Das `--exec`-Flag erlaubt die Ausführung von Shell-Befehlen nach jedem Commit, der während des Rebase-Vorgangs wiedergegeben wird. Wichtig ist, dass die Ausnutzung dieser Schwachstelle keine Administratorrechte oder Interaktion von anderen Benutzern erfordert. Ein Angreifer kann einfach ein Konto und ein Repository auf einer standardmäßig konfigurierten **Gogs**-Instanz erstellen, um den Angriff zu starten.
Burgess erklärt: „Jeder registrierte Benutzer, der ein Repository erstellt, ist automatisch dessen Eigentümer. Von dort aus ist die Aktivierung des Rebase-Merges eine einzige Umschaltung in den Einstellungen, und die gesamte Exploit-Kette kann ohne Interaktion von anderen Benutzern betrieben werden.“
### Alternatives Angriffsszenario
In Szenarien, in denen das Rebase-Merging bereits für ein Repository aktiviert ist, kann ein Benutzer mit Schreibzugriff die Lücke direkt ausnutzen, um Codeausführung zu erlangen. Auf **Gogs**-Instanzen, bei denen die Repository-Erstellung eingeschränkt ist, muss ein Angreifer jedoch Schreibzugriff auf ein Repository mit aktiviertem Rebase-Merging besitzen.
### Ungepatchte Schwachstelle und potenzielle Auswirkungen
Zum Zeitpunkt der Erstellung dieses Artikels ist die Schwachstelle trotz Meldung an den Maintainer am 17. März 2026 noch ungepatcht. Eine erfolgreiche Ausnutzung könnte es einem Angreifer ermöglichen:
* Den Server zu kompromittieren
* Auf alle Repositories auf der Instanz zuzugreifen
* Anmeldedaten zu extrahieren
* Seitwärtsbewegungen zu anderen netzwerkzugänglichen Systemen durchzuführen
* Den Code jedes gehosteten Repositories zu manipulieren
Darüber hinaus könnte die Schwachstelle zu einem Cross-Tenant-Datenleck führen und die privaten Repositories anderer Benutzer auf demselben Server offenlegen. Die Lücke betrifft alle unterstützten Plattformen, einschließlich Windows, Linux und macOS.
### Abhilfemaßnahmen
Bei geschätzten 1.141 öffentlich zugänglichen **Gogs**-Instanzen und vielen weiteren hinter VPNs oder internen Netzwerken sind die potenziellen Auswirkungen erheblich. In Ermangelung eines offiziellen Patches werden folgende Abhilfemaßnahmen empfohlen:
* Benutzerregistrierung einschränken (`DISABLE_REGISTRATION = true` in `app.ini`)
* Repository-Erstellung einschränken (`MAX_CREATION_LIMIT = 0` in `app.ini`)
* Rebase-Merge-Einstellungen überprüfen
### Metasploit-Modul verfügbar
**Rapid7** hat ein **Metasploit**-Modul veröffentlicht, das die Exploit-Kette für Linux- und Windows-Ziele automatisiert. Das Modul unterstützt zwei Modi:
1. Erstellung eines temporären Repositories unter dem Konto des Angreifers, Ausführung des Exploits und Löschung des Repositories.
2. Ziel ist ein bestehendes Repository, auf das der Angreifer Schreib- und Merge-Zugriff hat.
Burgess merkt an: „Wenn der Angreifer sein eigenes Repository erstellt und löscht, bleibt nur ein HTTP 500 in den Serverprotokollen zurück. Bei der Ausnutzung eines bestehenden Repositories bleiben zusätzliche Artefakte erhalten.“