„`html
Zusammenfassung
GitPython in Versionen vor 3.1.54 weist eine kritische Remote Code Execution (RCE) Schwachstelle auf. Die Sicherheitsprüfung check_unsafe_options kann durch manipulation von Single-Character Keyword-Argumenten umgangen werden. Dies ermöglicht Angreifern die Ausführung beliebiger Betriebssystembefehle auf betroffenen Systemen.
Betroffene Systeme
GitPython versions < 3.1.54 sind betroffen. Die Schwachstelle liegt in folgenden Methoden vor:
- clone_from()
- fetch()
- pull()
- push()
- ls_remote()
- iter_commits()
- blame()
- archive()
Alle Systeme, die GitPython Versionen vor 3.1.54 nutzen, sind potenziell gefährdet.
Technische Details
Der check_unsafe_options Guard ist dazu konzipiert, die Übergabe gefährlicher Git-Optionen zu verhindern. Durch geschicktes Einschleusen von Git-Optionen in Single-Character Kwarg-Werten kann diese Schutzmaßnahme umgangen werden.
Ein Angreifer kann ein manipuliertes Options-Dictionary an vulnerable Methoden übergeben. Das –upload-pack Parameter wird als Angriffsvektor genutzt, um Befehle in den Git-Prozess einzuschleusen. Dies führt zur Ausführung beliebiger OS-Befehle mit den Rechten des Anwendungsprozesses.
Das CVSS-Score von 8.8 (High) reflektiert das erhebliche Risiko. Der Angriffsvektor ist netzwerkbasiert und erfordert keine Authentifizierung.
Empfohlene Massnahmen
- Sofortiges Update auf GitPython 3.1.54 oder höher durchführen
- Eingabevalidierung für alle Git-Repository-Operationen implementieren
- Prinzip der geringsten Berechtigung anwenden
- GitPython-Prozesse in isolierten Sandboxen ausführen
- Web-Anwendungen, die GitPython nutzen, priorisiert patchen
- Sicherheits-Scanning auf anfällige Abhängigkeiten durchführen
Bewertung
Schweregrad: High (CVSS 8.8)
Angriffsvektor: Network
Verfügbar Patch: Nein (Update erforderlich)
Diese Schwachstelle sollte mit höchster Priorität behandelt werden, da sie Remote Code Execution ohne Authentifizierung ermöglicht.
„`