Sono stati pubblicati aggiornamenti correttivi per il sistema di controllo delle versioni 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, nei quali è stata risolta () nel gestore "" che porta a inviare le credenziali al host sbagliato quando il client git accede a un repository tramite un URL appositamente formattato contenente un carattere di nuova riga. Questa vulnerabilità può essere sfruttata per inviare credenziali da un altro host a un server controllato dall'attaccante.
Quando si specifica un URL del tipo «https://evil.com?host=github.com/», il gestore delle credenziali durante la connessione all'host evil.com trasmetterà i parametri di autenticazione impostati per github.com. Il problema si manifesta durante operazioni come «git clone», inclusa la gestione degli URL per i submoduli (ad esempio, eseguendo «git submodule update», verranno automaticamente elaborati gli URL specificati nel file .gitmodules del repository). Questa vulnerabilità è particolarmente pericolosa in situazioni in cui lo sviluppatore esegue il cloning di un repository senza vedere l'URL, per esempio, durante il lavoro con i submoduli, o in sistemi che eseguono azioni automatiche, come negli script di compilazione dei pacchetti.
Per bloccare la vulnerabilità, nelle nuove versioni invocare caratteri di nuova riga in qualsiasi valore trasmesso tramite il protocollo di scambio delle credenziali. Per controllare il rilascio di aggiornamenti dei pacchetti per le distribuzioni, è possibile consultare le pagine , , , , , , .
Come soluzione alternativa per bloccare il problema evitare di utilizzare credential.helper quando si accede a repository pubblici e non utilizzare "git clone" in modalità "—recurse-submodules" con repository non verificati. Per disabilitare completamente il gestore credential.helper, che esegue e il recupero delle password dal , protetta o da un file di password, è possibile utilizzare i comandi:
git config —unset credential.helper
git config —global —unset credential.helper
git config —system —unset credential.helper
Fonte: opennet.ru
