Les mises à jour correctives du système de gestion de version distribué 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 et 2.17.4, qui corrigent () dans le gestionnaire «», entraînant l'envoi des informations d'identification vers le mauvais hôte lors de l'accès d'un client git à un dépôt via un URL malveillant contenant un caractère de nouvelle ligne. La vulnérabilité peut être exploitée pour envoyer des informations d'identification d'un autre hôte vers un serveur contrôlé par un attaquant.
Lorsqu'une URL de type « https://evil.com?host=github.com/ » est spécifiée, le gestionnaire des identifiants lors de la connexion à l'hôte evil.com transmettra les paramètres d'authentification définis pour github.com. Le problème se manifeste lors de l'exécution d'opérations telles que « git clone », y compris lors du traitement des URL pour les sous-modules (par exemple, en exécutant « git submodule update », les URL définies dans le fichier .gitmodules du référentiel seront automatiquement traitées). La vulnérabilité présente un risque accru dans des situations où le développeur clone un référentiel sans voir l'URL, par exemple lors du travail avec des sous-modules, ou dans des systèmes exécutant des actions automatiques, comme dans des scripts de construction de paquets.
Pour bloquer la vulnérabilité dans les nouvelles versions la transmission du caractère de nouvelle ligne dans toutes les valeurs envoyées via le protocole d'échange d'informations d'identification. Pour les distributions, les mises à jour des paquets peuvent être suivies sur les pages , , , , , , .
En tant que solution de contournement pour bloquer le problème n'utilisez pas credential.helper lors de l'accès à des dépôts publics et n'appliquez pas «git clone» en mode «—recurse-submodules» avec des dépôts non vérifiés. Pour désactiver complètement le gestionnaire credential.helper, qui effectue et la récupération des mots de passe depuis , sécurisé par ou un fichier de mots de passe, vous pouvez utiliser les commandes :
git config —unset credential.helper
git config —global —unset credential.helper
git config —system —unset credential.helper
Source : opennet.ru
