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'un URL de la forme «https://evil.com?host=github.com/» est spécifié, le gestionnaire d'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, lors de l'exécution de «git submodule update», les URL définies dans le fichier .gitmodules du dépôt seront automatiquement traitées). Cette vulnérabilité représente un risque plus important dans les situations où le développeur clone un dépôt sans voir l'URL, par exemple en travaillant avec des sous-modules, ou dans des systèmes effectuant des actions automatiques, comme dans les scripts de compilation 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
