Die Sicherheitsforscher von Rapid7 haben die kritische Schwachstelle analysiert und ein detailliertes Angriffsszenario dokumentiert. Die Lücke nutzt eine unsichere Verarbeitung von Git-Rebase-Operationen mit dem –exec-Flag aus. Beim “Rebase before Merging” – einer häufig verwendeten Merge-Strategie in Gogs – können Angreifer böswillige Branch-Namen einschleusen, die Shell-Befehle injizieren.
Der Angriff ist bemerkenswert einfach durchzuführen: Ein Angreifer registriert sich auf einer Gogs-Instanz, erstellt ein eigenes Repository und aktiviert Rebase Merging in den Einstellungen. Dies sind standardmäßig User-Aktivitäten ohne Administrative Rechte. Anschließend erstellt er einen Pull Request mit manipuliertem Branch-Namen, der Shell-Kommandos enthält. Bei der Merge-Operation wird dieser Code ausgeführt – mit den Rechten des Gogs-Prozesses.
In einem alternativen Szenario kann auch ein Benutzer mit Schreibzugriff auf ein Repository mit bereits aktiviertem Rebase-Merging die Lücke direkt ausnutzen. Auf Instanzen mit Beschränkung der Repository-Erstellung benötigt der Angreifer Schreibzugriff auf mindestens ein betroffenes Repository.
Die Folgen sind erheblich: Ein erfolgreicher Exploit ermöglicht Zugriff auf alle Repositories der Instanz, das Extrahieren von Anmeldedaten und eine Ausbreitung auf andere Netzwerk-Systeme. Besonders kritisch ist das Risiko einer Cross-Tenant-Datenpanne – auf gemeinsamen Servern könnten private Repositories anderer Benutzer kompromittiert werden.
Rapid7 schätzt etwa 1.141 internetgerichtete Gogs-Instanzen, die tatsächliche Zahl dürfte jedoch deutlich höher liegen, da die meisten Deployments in internen Netzwerken oder hinter VPNs betrieben werden. Das Security-Team hat bereits einen Metasploit-Modul entwickelt, der den kompletten Exploit-Chain automatisiert.
Solange kein Patch vorliegt, müssen Administratoren auf Schutzmassnahmen wie Netzwerk-Segmentierung und strikte Zugriffskontrolle zurückgreifen. Eine sofortige Überprüfung der Gogs-Konfiguration ist dringend empfohlen.
