Git-Update mit 8 behobenen Schwachstellen

Veröffentlicht Korrekturversionen des verteilten Quellcodeverwaltungssystems Git 2.24.1, 2.23.1, 2.22.2, 2.21.1, 2.20.2, 2.19.3, 2.18.2, 2.17.3, 2.16.6, 2.15.4 und 2.14.62.24.1 . XNUMX, das Schwachstellen behebt, die es einem Angreifer ermöglichen, beliebige Pfade im Dateisystem neu zu schreiben, die Remote-Codeausführung zu organisieren oder Dateien im Verzeichnis „.git/“ zu überschreiben. Die meisten Probleme wurden von den Mitarbeitern identifiziert
Laut Microsoft Security Response Center sind fünf der acht Schwachstellen spezifisch für die Windows-Plattform.

  • CVE-2019-1348 – Streaming-Befehl „feature export-marks=path“ermöglicht Schreiben Sie Beschriftungen in beliebige Verzeichnisse, die zum Überschreiben beliebiger Pfade im Dateisystem verwendet werden können, wenn eine „git fast-import“-Operation mit ungeprüften Eingabedaten durchgeführt wird.
  • CVE-2019-1350 - Falsches Escapezeichen für Befehlszeilenargumente könnte führen zur Fernausführung von Angreifercode während des rekursiven Klonens mithilfe der URL ssh://. Insbesondere wurden Escape-Argumente, die mit einem Backslash enden (z. B. „test \“), falsch behandelt. In diesem Fall wurde beim Einrahmen eines Arguments mit doppelten Anführungszeichen das letzte Anführungszeichen maskiert, was es ermöglichte, die Ersetzung Ihrer Optionen in der Befehlszeile zu organisieren.
  • CVE-2019-1349 – beim rekursiven Klonen von Submodulen („clone —recurse-submodules“) in der Windows-Umgebung unter bestimmten Bedingungen könnte Lösen Sie die Verwendung desselben Git-Verzeichnisses zweimal aus (.git, git~1, git~2 und git~N werden in NTFS als ein Verzeichnis erkannt, diese Situation wurde jedoch nur für git~1 getestet), was zum Organisieren verwendet werden könnte Schreiben in das Verzeichnis „.git“. Um die Ausführung seines Codes zu organisieren, kann ein Angreifer beispielsweise sein Skript durch den Post-Checkout-Handler in der Datei .git/config ersetzen.
  • CVE-2019-1351 — Der Handler für Buchstabenlaufwerksnamen in Windows-Pfaden beim Übersetzen von Pfaden wie „C:\“ war nur dazu gedacht, lateinische Bezeichner mit einem Buchstaben zu ersetzen, berücksichtigte aber nicht die Möglichkeit, virtuelle Laufwerke zu erstellen, die über „subst letter:path“ zugewiesen wurden. . Solche Pfade wurden nicht als absolute, sondern als relative Pfade behandelt, was es beim Klonen eines bösartigen Repositorys ermöglichte, einen Datensatz in einem beliebigen Verzeichnis außerhalb des Arbeitsverzeichnisbaums zu organisieren (z. B. bei Verwendung von Zahlen oder Unicode-Zeichen auf der Festplatte). Name - „1:\what\the\ hex.txt“ oder „ä:\tschibät.sch“).
  • CVE-2019-1352 — beim Arbeiten auf der Windows-Plattform die Verwendung alternativer Datenströme in NTFS, erstellt durch Hinzufügen des Attributs „:stream-name:stream-type“ zum Dateinamen, erlaubt Überschreiben Sie Dateien im Verzeichnis „.git/“, wenn Sie ein bösartiges Repository klonen. Beispielsweise wurde der Name „.git::$INDEX_ALLOCATION“ in NTFS als gültiger Link zum Verzeichnis „.git“ behandelt.
  • CVE-2019-1353 – bei Verwendung von Git in einer WSL-Umgebung (Windows Subsystem für Linux) beim Zugriff auf das Arbeitsverzeichnis nicht benutzt Schutz vor Namensmanipulation in NTFS (Angriffe durch FAT-Namensübersetzung waren möglich, z. B. konnte auf „.git“ über das Verzeichnis „git~1“ zugegriffen werden).
  • CVE-2019-1354 -
    Gelegenheit schreibt in das Verzeichnis „.git/“ auf der Windows-Plattform, wenn bösartige Repositorys geklont werden, die Dateien mit einem Backslash im Namen enthalten (z. B. „a\b“), was unter Unix/Linux akzeptabel ist, aber als Teil von akzeptiert wird der Pfad unter Windows.

  • CVE-2019-1387 — Eine unzureichende Überprüfung der Submodulnamen könnte zur Organisation gezielter Angriffe genutzt werden, die, wenn sie rekursiv geklont werden, möglicherweise dazu führen könnten könnte führen um den Code des Angreifers auszuführen. Git verhinderte nicht die Erstellung eines Submodulverzeichnisses innerhalb des Verzeichnisses eines anderen Submoduls, was in den meisten Fällen nur zu Verwirrung führen würde, verhinderte jedoch möglicherweise nicht, dass der Inhalt eines anderen Moduls während des rekursiven Klonvorgangs überschrieben wurde (z. B. die Submodulverzeichnisse). „hippo“ und „hippo/hooks“ werden als „.git/modules/hippo/“ und „.git/modules/hippo/hooks/“ platziert und das Hooks-Verzeichnis in hippo kann separat zum Hosten ausgelöster Hooks verwendet werden.

Windows-Benutzern wird empfohlen, ihre Git-Version sofort zu aktualisieren und bis zum Update keine ungeprüften Repositorys zu klonen. Wenn es noch nicht möglich ist, die Git-Version dringend zu aktualisieren, wird zur Reduzierung des Angriffsrisikos empfohlen, „git clone –recurse-submodules“ und „git submodule update“ nicht mit ungeprüften Repositorys auszuführen und „git fast-import“ mit ungeprüften Eingabeströmen und nicht zum Klonen von Repositorys auf NTFS-basierte Partitionen.

Für zusätzliche Sicherheit verbieten neue Versionen auch die Verwendung von Konstrukten der Form „submodule.{name}.update=!command“ in .gitmodules. Bei Distributionen können Sie die Veröffentlichung von Paketaktualisierungen auf den Seiten verfolgen Debian,Ubuntu, RHEL, SUSE/openSUSE, Fedora, Bogen, ALT, FreeBSD.

Source: opennet.ru

Kommentar hinzufügen