Es wurden korrigierende Versionen des verteilten Systems zur Verwaltung von Quelltexten Git 2.39.1, 2.38.3, 2.37.5, 2.36.4, 2.35.6, 2.34.6, 2.33.6, 2.32.5, 2.31.6 und 2.30.7 veröffentlicht, die zwei Schwachstellen beheben. Diese ermöglichen die Ausführung von benutzerdefiniertem Code auf dem System des Nutzers bei Verwendung des Befehls „git archive“ und beim Umgang mit nicht vertrauenswürdigen externen Repositories. Die Schwachstellen wurden durch Fehler in der Formatierung des Commit-Codes und in der Verarbeitung der Datei „.gitattributes“ verursacht, die beim Umgang mit externen Repositories zu einem Schreibzugriff außerhalb des Heaps und zum Lesen beliebiger Daten aus dem Speicher führen können.
Beide Schwachstellen wurden während eines Sicherheitsaudits der Git-Codebasis entdeckt, das von der Firma X41 im Auftrag des OSTIF (Open Source Technology Improvement Fund) durchgeführt wurde. Dieser wurde ins Leben gerufen, um die Sicherheit offener Projekte zu verbessern. Neben den beiden kritischen Problemen, die nachfolgend behandelt werden, wurden bei dem Audit auch eine gefährliche Schwachstelle, eine Schwachstelle mittlerer Schwere und vier unkritische Probleme gefunden. Darüber hinaus wurden 27 Empfehlungen zur Verbesserung der Sicherheit der Codebasis ausgesprochen.
- CVE-2022-41903: Ganzzahl-Überlauf im Code zur Formatierung von Commit-Informationen, der auftritt, wenn große Offset-Werte in Fülloperatoren wie «%<(«, «%(«, «%>>(» und «%«) verarbeitet werden. Der Ganzzahl-Überlauf tritt in der Funktion format_and_pad_commit() auf, da der Typ int für die Variable size_t verwendet wird, die bei dem Aufruf von memcpy() zur Bestimmung der Größe des Offset des kopierten Blocks beiträgt.
Die Schwachstelle tritt sowohl bei direktem Aufruf mit speziell gestalteten Formatierungsparametern (z. B. beim Ausführen von «git log —format=…») als auch bei indirekter Anwendung von Formatierung während der Ausführung des Befehls «git archive» in einem vom Angreifer kontrollierten Repository auf. Im letzteren Fall werden die Formatierungsmodifikatoren über den Parameter export-subst in der Datei «.gitattributes» festgelegt, die vom Angreifer in seinem Repository platziert werden kann. Das Problem kann ausgenutzt werden, um beliebige Bereiche im Heap zu lesen und zu schreiben, und kann zur Ausführung von Code des Angreifers führen, wenn mit nicht vertrauenswürdigen Repositories gearbeitet wird.
- CVE-2022-23521: Ganzzahlüberläufe bei der Verarbeitung von Inhalten in '.gitattributes'-Dateien in Repositories, die sich bei der Verarbeitung einer sehr großen Anzahl von Dateipfadmustern oder einer großen Anzahl von Attributen mit einem Muster und bei der Verarbeitung sehr großer Attributnamen zeigen können. Dieses Problem kann ausgenutzt werden, um in beliebigen Bereichen des Heaps zu lesen und zu schreiben, und kann zur Ausführung von Code durch einen Angreifer führen, wenn mit einem nicht vertrauenswürdigen Repository gearbeitet wird, in dem der Angreifer eine speziell gestaltete .gitattributes-Datei platzieren und deren Aufnahme in den Index sicherstellen kann.
Die Veröffentlichung von Paket-Updates in Distributionen kann auf den Seiten von: Debian, Ubuntu, Gentoo, RHEL, SUSE, Arch, FreeBSD, NetBSD verfolgt werden. Um das Risiko eines Angriffs zu verringern, wenn ein Update nicht rechtzeitig installiert werden kann, empfiehlt es sich, von der Arbeit mit unzuverlässigen Repositories und der Nutzung des Befehls „git archive“ Abstand zu nehmen. Es ist wichtig, sich daran zu erinnern, dass der Befehl „git archive“ implizit ausgeführt werden kann, zum Beispiel von git daemon. Um die Ausführung von „git archive“ in git daemon zu deaktivieren, sollte die Option daemon.uploadArch mit dem Befehl „git config —global daemon.uploadArch false“ geändert werden.
Zusätzlich kann eine weitere Sicherheitsanfälligkeit (CVE-2022-41953) in der Software Git für Windows erwähnt werden, die es ermöglicht, Code auszuführen, wenn unüberprüfte externe Repositories über die grafische Benutzeroberfläche geklont werden. Das Problem entsteht dadurch, dass Git GUI für Windows nach dem "Checkout" automatisch bestimmte Nachbearbeitungsbefehle ausführt, wie das Starten des Programms zur Rechtschreibprüfung, wobei die Suchpfade für die Rechtschreibprüfung auch das geklonte Arbeitsverzeichnis umfassen (der Angriff besteht darin, die Rechtschreibprüfung in das Arbeitsverzeichnis des Repositories hinzuzufügen).
Quelle: opennet.ru
