Korrekturen für die verteilte Versionierungssystem Git 2.26.1, 2.25.3, 2.24.2, 2.23.2, 2.22.3, 2.21.2, 2.20.3, 2.19.4, 2.18.3 und 2.17.4, in denen die () im Handler „“, die dazu führt, dass Anmeldedaten nicht an den richtigen Host gesendet werden, wenn der Git-Client auf ein Repository über eine speziell formatierte URL zugreift, die ein Zeilenumbruchzeichen enthält. Diese Sicherheitsanfälligkeit kann ausgenutzt werden, um Anmeldedaten von einem anderen Host auf einen vom Angreifer kontrollierten Server zu senden.
Wenn eine URL wie „https://evil.com?host=github.com/“ angegeben wird, überträgt der Anmeldehandler beim Verbindungsaufbau mit dem Host evil.com die für github.com festgelegten Authentifizierungsparameter. Das Problem tritt bei Operationen wie „git clone“ auf, einschließlich der Verarbeitung von URLs für Submodule (zum Beispiel werden bei „git submodule update“ automatisch die in der Datei .gitmodules aus dem Repository angegebenen URLs verarbeitet). Die Schwachstelle stellt die größte Gefahr dar, wenn ein Entwickler ein Repository klont, ohne die URL zu sehen, etwa bei der Arbeit mit Submodulen oder in Systemen, die automatisierte Aktionen ausführen, beispielsweise in Paketbuild-Skripten.
Um die Sicherheitsanfälligkeit in neuen Versionen zu blockieren, das Übertragen von Zeilenumbruchzeichen in allen Werten, die über das Protokoll für die Anmeldedatenübertragung übermittelt werden. Um sicherzustellen, dass die Aktualisierungen für die Distributionen bereitgestellt werden, können die Seiten , , , , , , .
Als Umgehungslösung zur Blockierung des Problems sollte credential.helper bei der Verbindung zu öffentlichen Repositories nicht verwendet und „git clone“ nicht im „—recurse-submodules“-Modus mit ungetesteten Repositories angewendet werden. Um den Anmeldedaten-Handler credential.helper vollständig zu deaktivieren, der und Abruf von Passwörtern aus , geschützt durch oder eine Passwortdatei zu verwenden, können die folgenden Befehle ausgeführt werden:
git config —unset credential.helper
git config —global —unset credential.helper
git config —system —unset credential.helper
Quelle: opennet.ru
