Es wurden Sicherheitsupdates für das verteilte System 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. Informationen über die Aktualisierungen der Pakete in den Distributionen können auf den Seiten von Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch und FreeBSD verfolgt werden. Als Umgehungsmaßnahmen zum Schutz vor den Anfälligkeiten wird empfohlen, den Befehl "git apply --reject" bei der Arbeit mit unzuverlässigen 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 das Einfügen von Einstellungen in die 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 bei Umbenennungs- oder Löschoperationen als Beginn eines neuen Abschnitts im Konfigurationsfile interpretiert werden können. In der Praxis können ausnutzbare Werte durch die Angabe sehr langer URLs von Submodulen erzielt 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 mit "git submodule deinit" zu löschen.
Die Schwachstelle CVE-2023-25652 ermöglicht das Überschreiben von Dateiinhalten außerhalb des Arbeitsverzeichnisses, wenn speziell formatierte Patches mit dem Befehl «git apply —reject» verarbeitet werden. Bei dem Versuch, einen schädlichen Patch mit dem Befehl «git apply» auszuführen, der versucht, über eine symbolische Verknüpfung in eine Datei zu schreiben, wird der Vorgang abgelehnt. In Git 2.39.1 wurde der Schutz gegen Manipulationen über symbolische Verknüpfungen durch das Sperren von Patches, die symbolische Verknüpfungen erstellen und versuchen, durch diese zu schreiben, erweitert. Der Kern dieser Schwachstelle besteht darin, dass Git nicht berücksichtigt hat, dass der Benutzer den Befehl «git apply —reject» verwenden kann, um abgelehnte Patch-Teile als Dateien mit der Endung «.rej» zu speichern, und ein Angreifer diese Möglichkeit nutzen kann, um Inhalte in ein beliebiges Verzeichnis zu schreiben, basierend auf den aktuellen Zugriffsrechten.
Darüber hinaus wurden drei Schwachstellen behoben, die ausschließlich auf der Windows-Plattform auftreten: CVE-2023-29012 (Suche nach der ausführbaren doskey.exe im Arbeitsverzeichnis des Repositories beim Ausführen 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 Lokalizationsdateien in gettext) und CVE-2023-29011 (die Möglichkeit, die Datei connect.exe während der Nutzung von SOCKS5 zu ersetzen).
Quelle: opennet.ru
