Gefährliche SSH-Befehle: Kritische Sicherheitslücke in GitLab
Zusammenfassung
In GitLab steckte 2017 eine kritische Lücke (CVE-2017-12426), über die Angreifer beim Import eines Repositorys per URL Befehle auf dem Server ausführen konnten. Ein in die URL eingeschleustes Options-Flag ließ den Rest der Adresse als Befehl interpretieren. Betroffen waren die Versionen 7.9.0 bis 9.4.3, ähnliche Fehler hatte Recurity Labs zuvor in Git, Mercurial und anderen Versionskontrollsystemen gefunden.
Ideen
- Eine URL, die mit einem Bindestrich beginnt, wird von Kommandozeilenprogrammen als Option gelesen.
- Auf dem Server trifft der Fehler die ganze Installation, nicht nur einen einzelnen Nutzer.
- Das Git-Kommando lief auf dem Server teils mit weitreichenden Rechten.
- Korrekturen kamen für mehrere unterstützte Versionszweige gleichzeitig.
Einsichten
- Das Weiterreichen von Nutzereingaben an Kommandozeilenprogramme ist eine klassische Injektionsquelle.
- Serverdienste, die fremde Repositorys abrufen, brauchen dieselbe Vorsicht wie Clients, eher noch mehr.
Fakten
- Korrigiert war die Lücke in 9.4.4, 9.3.10, 9.2.19, 9.1.10, 9.0.13 und 8.17.8.
- Die Entwickler stuften die Lücke als kritisch ein.
Referenzen
Kritik
- Die Meldung erklärt nicht, ob der Import für alle Nutzer oder nur für angemeldete Konten möglich war.
Empfehlungen
- Übergib Nutzereingaben an Kommandozeilenprogramme nur nach einem „--“ als Optionsende.
- Halte selbst gehostete GitLab-Instanzen auf einem unterstützten, aktuellen Versionszweig.
Links zur Originalquelle und zum Webarchiv öffnen einen neuen Tab.