Sicherheitslücken in Git, die das Überschreiben von Dateien oder die Ausführung eigenen Codes ermöglichen.

Es wurden Korrekturversionen des verteilten Systems zur Verwaltung von Quelltexten Git 2.40.1, 2.39.3, 2.38.5, 2.37.7, 2.36.6, 2.35.8, 2.34.8, 2.33.8, 2.32.7, 2.31.8 und 2.30.9 veröffentlicht, in denen fünf Sicherheitsanfälligkeiten behoben wurden. Die Veröffentlichung von Aktualisierungen in den Distributionen kann auf den Seiten von Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD verfolgt werden. Als Umgehungsmaßnahmen zum Schutz vor Schwachstellen wird empfohlen, den Befehl „git apply —reject“ bei der Arbeit mit unüberprüften externen Patches zu vermeiden und den Inhalt von $GIT_DIR/config vor dem Ausführen der Befehle „git submodule deinit“, „git config —rename-section“ und „git config —remove-section“ bei der Arbeit mit nicht vertrauenswürdigen Repositories zu überprüfen.

Die Schwachstelle CVE-2023-29007 ermöglicht die Ersetzung von Einstellungen in der Konfigurationsdatei $GIT_DIR/config, die zur Ausführung von Code im System verwendet werden können, indem Pfade zu ausführbaren Dateien in den Direktiven core.pager, core.editor und core.sshCommand angegeben werden. Die Schwachstelle wird durch einen logischen Fehler verursacht, aufgrund dessen sehr lange Konfigurationswerte beim Umbenennen oder Löschen von Sektionen in der Konfigurationsdatei als Beginn einer neuen Sektion verarbeitet werden können. In der Praxis können die ausnutzenden Werte durch die Angabe sehr langer URLs von Submodulen erreicht werden, die während der Initialisierung in die Datei $GIT_DIR/config gespeichert werden. Diese URLs können als neue Einstellungen interpretiert werden, wenn versucht wird, sie durch „git submodule deinit“ zu löschen.

Die Schwachstelle CVE-2023-25652 ermöglicht das Überschreiben des Inhalts von Dateien außerhalb des Arbeitsbaums beim Verarbeiten speziell gestalteter Patches mit dem Befehl „git apply —reject“. Wenn versucht wird, einen schädlichen Patch mit dem Befehl „git apply“ auszuführen, der versucht, über einen symbolischen Link in eine Datei zu schreiben, wird die Operation abgelehnt. In Git 2.39.1 wurde der Schutz vor Manipulationen über symbolische Links durch das Blockieren von Patches erweitert, die symbolische Links erstellen und versuchen, darüber zu schreiben. Der Kern der besprochenen Schwachstelle besteht darin, dass Git nicht berücksichtigte, dass der Benutzer den Befehl „git apply —reject“ ausführen kann, um abgelehnte Teile des Patches als Dateien mit der Erweiterung „.rej“ zu speichern, und ein Angreifer diese Möglichkeit nutzen kann, um Inhalte in beliebige Verzeichnisse zu schreiben, soweit es die aktuellen Zugriffsrechte zulassen.

Darüber hinaus wurden drei Schwachstellen beseitigt, die nur auf der Plattform Windows auftreten: CVE-2023-29012 (Suche nach der ausführbaren doskey.exe im Arbeitsverzeichnis des Repositorys bei Ausführung des Befehls „Git CMD“, was die Ausführung eigenen Codes im System des Benutzers ermöglicht), CVE-2023-25815 (Pufferüberlauf bei der Verarbeitung speziell formatierter Lokalisierungsdateien in gettext) und CVE-2023-29011 (Möglichkeit, die Datei connect.exe beim Arbeiten über SOCKS5 zu ersetzen).

Quelle: opennet.ru

60GB SSD 8Gb DDR4