Es wurden Korrekturversionen des verteilten Systems zur Verwaltung von Quelltexten Git 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 und 2.39.4 veröffentlicht, in denen fünf Sicherheitsanfälligkeiten behoben wurden. Die schwerwiegendste Sicherheitsanfälligkeit (CVE-2024-32002), die als kritisch eingestuft wurde, ermöglicht die Ausführung von bösartigem Code bei der Ausführung des Befehls 'git clone' eines vom Angreifer kontrollierten Repositories.
Die Sicherheitsanfälligkeit tritt nur in dateisystemen auf, die zwischen Groß- und Kleinschreibung nicht unterscheiden und symbolische Links unterstützen, wie sie standardmäßig in Windows und macOS verwendet werden. Die Ausnutzung erfolgt durch die Erstellung eines Untermoduls mit einem Verzeichnis und einem symbolischen Link, die sich nur in der Groß- und Kleinschreibung der Zeichen unterscheiden, was es ermöglicht, Dateien in das Verzeichnis .git/ anstatt in das Arbeitsverzeichnis des Submoduls zu schreiben. Durch die Möglichkeit, in .git/ zu schreiben, kann der Angreifer Hook-Aufrufe über .git/hooks überschreiben und die Ausführung von beliebigem Code während des 'git clone'-Vorgangs erreichen.
Weitere Schwachstellen:
- CVE-2024-32004 — Ein Angreifer in einem Mehrbenutzersystem kann ein speziell gestaltetes lokales Repository vorbereiten und die Ausführung von Code beim Klonen erzwingen. Insbesondere kann der Angreifer ein lokales Repository erstellen, das wie ein Teilklon aussieht, in dem ein bestimmtes Objekt fehlt. Das Klonen dieses Repositories führt zur Ausführung von Code mit den Rechten des Benutzers, der den Klonvorgang durchführt.
- CVE-2024-32465 — Das Klonen aus ZIP-Archiven, die ein vollständiges Git-Repository, einschließlich Hooks im Verzeichnis .git/, enthalten, führt zur Ausführung dieser Hooks.
- CVE-2024-32020 — Das Erstellen lokaler Klone eines Repositories auf derselben Festplatte in einem Mehrbenutzersystem ermöglicht es anderen Benutzern, Dateien zu ändern, auf die harte Links angewendet werden.
- CVE-2024-32021 — Das Klonen eines lokalen Repositories mit symbolischen Links kann verwendet werden, um harte Links auf beliebige Dateien im Verzeichnis objects/ zu erstellen.
Neben der Behebung von Sicherheitsanfälligkeiten in neuen Versionen wurden auch mehrere Änderungen vorgeschlagen, die darauf abzielen, den Schutz vor Schwachstellen, die zu Remote Code Execution führen und symbolische Links während der Klonierung manipulieren, zu erhöhen. So gibt git jetzt eine Warnung aus, wenn symbolische Links im Verzeichnis .git/ vorhanden sind. Die Pfade zu Submodulen dürfen nun nur reale Verzeichnisse enthalten. Wenn symbolische Links und Verzeichnisse aufeinander treffen, werden die Verzeichnisse behandelt. Bei der Ausführung von 'git clone' wurde ein Schutz gegen die Ausführung von Hooks während des Klonierens hinzugefügt und die Überprüfung des Parameters core.hooksPath verstärkt.
Quelle: opennet.ru
