Git ist das am weitesten verbreitete verteilte Versionsverwaltung, welche von Linus Torvalds zur Verwaltung des Linux Kernels entwickelt wurde.Zwei kürzliche entdeckte Schwachstellen in Git haben zur Folge, dass ein entfernter Angreifer Befehle mit höheren Rechten ausführen kann. Weiter ist er auch in der Lage bestimmte Bereiche des Systemspeichers auszulesen.
Ursache der ersten Schwachstellen sind Fehler beim Verarbeiten von Sub-Module-Namen, die über die .gitmodules-Datei eingelesen werden. Normalerweise fügt Git diese Namen dann an das $GIT_DIR/modules-Verzeichnis an. Die fehlende Sicherheitskontrolle im Code führt nun aber dazu, dass ein Angreifer über geschickt konstruierte Sub-Module-Namen Dateien des Systems überschreiben kann. Das geschieht dann, wenn der Anwender den Git clone-Befehle ausführt. Durch diesen Fehler kann der Angreifer dann im Weiteren auch Befehle mit den Rechten des Anwender ausführen. Bei der Schwachstelle handelt es sich um eine typische Double-Dot-Lücke. Hierbei kann der Angreifer einfach ‘../’-Zeichen in den Namen des Sub-Modules einfügen und so aus bestimmten Verzeichnissesn ausbrechen, und damit beliebige Dateien des Systems erreichen.
Das zweite Problem tritt beim Verarbeiten von Dateienamen auf NTFS-basierten Systemen auf. Verantwortlich für diese Sicherheitslücke ist der Git-Code, der für die Kontrolle der Dateinamen zuständig ist. Ein Programmierfehler im Speichermanagement erlaubt es dem Angreifer so unbefugt Speicherbereiche einzulesen.
Die neue Git-Version 2.17.1 korrigiert diese beiden Sicherheitslecks.
