Korrekturversionen des verteilten Quelltextverwaltungsystems 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 behoben wurde () im Handler „“, das 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 Schwachstelle kann ausgenutzt werden, um Anmeldedaten von einem anderen Host an einen Server zu senden, der vom Angreifer kontrolliert wird.
Wenn eine URL im Format „https://evil.com?host=github.com/“ angegeben wird, überträgt der Anmelde-Handler beim Verbinden mit dem Host evil.com die Authentifizierungseinstellungen, die für github.com festgelegt wurden. 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 im .gitmodules-Datei des Repositories angegebenen URLs verarbeitet). Die Schwachstelle stellt die größte Gefahr dar, wenn ein Entwickler ein Repository klont, ohne die URL zu sehen, zum Beispiel bei der Arbeit mit Submodulen oder in Systemen, die automatische Aktionen durchführen, wie etwa in Paketbau-Skripten.
Um die Schwachstelle in neuen Versionen zu blockieren sollte das Übertragen des Zeilenumbruchzeichens in beliebigen Werten, die über das Authentifizierungsprotokoll übertragen werden, unterbunden werden. Um sicherzustellen, dass die Pakete aktualisiert werden, können Distributionen die Seiten verfolgen , , , , , , .
Als Umgehungslösung zur Blockierung des Problems Vermeiden Sie die Verwendung von credential.helper beim Zugriff auf öffentliche Repositories und wenden Sie «git clone» im «—recurse-submodules»-Modus nicht auf nicht verifiziertes Repository an. Um credential.helper vollständig zu deaktivieren, das das und Abrufen von Passwörtern aus , geschützt durch oder eine Passwortdatei, können folgende Befehle verwendet werden:
git config —unset credential.helper
git config —global —unset credential.helper
git config —system —unset credential.helper
Quelle: opennet.ru
