Zwei Schwachstellen in Git, die zu Remote-Code-Ausführung führen können

Korrigierte Versionen des verteilten Systems zur Versionskontrolle 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 wurden veröffentlicht, in denen zwei Sicherheitsanfälligkeiten behoben wurden, die es ermöglichen, eigenen Code auf dem System des Nutzers auszuführen, wenn der Befehl „git archive“ verwendet wird und an nicht vertrauenswürdigen externen Repositories gearbeitet wird. Die Anfälligkeiten wurden durch Fehler im Formatierungscode von Commits und beim Parsen der Datei „.gitattributes“ ausgelöst, die beim Verarbeiten externer Repositories zu einer Schreiboperation außerhalb des Heaps und zum Auslesen willkürlicher Daten aus dem Speicher führen können.

Beide Anfälligkeiten wurden während einer Sicherheitsprüfung des Git-Codebaus festgestellt, die von der Firma X41 im Auftrag der OSTIF (Open Source Technology Improvement Fund) durchgeführt wurde, die gegründet wurde, um die Sicherheit von Open-Source-Projekten zu verbessern. Neben den beiden im Folgenden betrachteten kritischen Problemen wurden während der Prüfung auch eine gefährliche Sicherheitsanfälligkeit, eine Sicherheitsanfälligkeit mittlerer Schwere und vier nicht kritische Probleme gefunden. Zudem wurden 27 Empfehlungen zur Verbesserung der Sicherheit des Codebaus ausgesprochen.

  • CVE-2022-41903: Ganzzahlüberlauf im Formatierungscode für Commit-Informationen, der beim Verarbeiten großer Offset-Werte in Fülloperatoren wie „%<“, „%“, „%>>“ und „%><“ auftritt. Der Ganzzahlüberlauf tritt in der Funktion format_and_pad_commit() auf, weil der Typ int für die size_t-Variable verwendet wird, die bei dem Aufruf von memcpy() zur Bestimmung der Größe des zu kopierenden Blocks beiträgt.

    Die Anfälligkeit zeigt sich sowohl bei direkter Aufruf mit speziell formatierten Formatierungsparametern (z. B. beim Ausführen von „git log —format=…“) als auch bei indirekter Verwendung der Formatierung während der Ausführung des Befehls „git archive“ im Repository, das vom Angreifer kontrolliert wird. Im zweiten Fall werden die Formatierungsmodifikatoren über den Parameter export-subst in der Datei „.gitattributes“ festgelegt, die der Angreifer in seinem Repository platzieren kann. Das Problem kann ausgenutzt werden, um willkürliche Bereiche im Heap zu lesen und zu schreiben und zur Ausführung von Angreifercode bei der Arbeit mit nicht geprüften Repositories zu führen.

  • CVE-2022-23521: Ganzzahlüberläufe beim Parsen des Inhalts von Dateien " .gitattributes" in einem Repository, die bei der Verarbeitung einer sehr großen Anzahl von Dateipfaddynamiken oder einer großen Anzahl von Attributen mit einem Muster auftreten, sowie beim Parsen sehr großer Attributnamen. Das Problem kann ausgenutzt werden, um willkürliche Bereiche im Heap zu lesen und zu schreiben und zur Ausführung von Angreifercode bei der Arbeit mit untrusted Repositories zu führen, in denen der Angreifer eine speziell gestaltete Datei .gitattributes platzieren und ihre Indizierung sicherstellen kann.

Die Veröffentlichung von Paketupdates in den Distributionen kann auf den Seiten verfolgt werden: Debian, Ubuntu, Gentoo, RHEL, SUSE, Arch, FreeBSD, NetBSD. Um das Risiko eines Angriffs bei Nichtverfügbarkeit zeitnaher Updates zu minimieren, wird empfohlen, den Umgang mit nicht vertrauenswürdigen Repositories und die Verwendung des Befehls "git archive" zu vermeiden. Es ist wichtig zu beachten, dass der Befehl "git archive" implizit ausgeführt werden kann, beispielsweise durch git daemon. Um das Ausführen von "git archive" im 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 Schwachstelle (CVE-2022-41953) im Produkt Git für Windows hervorgehoben werden, die die Ausführung von Code beim Klonen von nicht vertrauenswürdigen externen Repositories über die grafische Benutzeroberfläche ermöglicht. Das Problem entsteht, weil Git GUI für Windows nach dem "checkout" automatisch einige Post-Prozessierungsbefehle ausführt, wie das Ausführen des Programms zur Rechtschreibprüfung, wobei die Suchpfade für die Datei zur Rechtschreibprüfung das geklonte Arbeitsverzeichnis umreißen (der Angriff besteht darin, die Rechtschreibprüfung in das Arbeitsverzeichnis des Repositories hinzuzufügen).

Quelle: opennet.ru

60GB SSD 8Gb DDR4