Il a été fait connaître publication de nouveaux correctifs de maintenance Git v2.40.1, ainsi que les versions de maintenance des versions précédentes v2.39.3, v2.38.5, v2.37.7, v2.36.6, v2.35.8,
v2.34.8, v2.33.8, v2.32.7, v2.31.8 et v2.30.9, ceci parce que des informations ont été publiées selon lesquelles cinq vulnérabilités ont été identifiées dans Git.
La publication de ces versions de maintenance sont destinés à résoudre les problèmes de sécurité identifiés tels que CVE-2023-25652, CVE-2023-25815 et CVE-2023-29007.
À propos des vulnérabilités Git
vulnérabilité CVE-2023-29007 permet la substitution de configuration dans le fichier de configuration $GIT_DIR/config, qui peut être utilisé pour exécuter du code sur le système en spécifiant les chemins d’accès aux fichiers exécutables dans les directives core.pager, core.editor et core.sshCommand.
vulnérabilité est dû à une erreur logique due à des valeurs de configuration très longues ils peuvent être traités comme le début d’une nouvelle section en renommant ou en supprimant une section d’un fichier de configuration.
En pratique, la substitution des valeurs d’exploit peut être obtenue en spécifiant des URL de sous-modules très longues qui sont enregistrées dans le fichier $GIT_DIR/config lors de l’initialisation. Ces URL peuvent être interprétées comme de nouvelles configurations lorsque vous essayez de les supprimer via “git submodule deinit”.
Une autre vulnérabilité est CVE-2023-25652 permettant d’écraser le contenu des fichiers en dehors de l’arborescence de travail lors du traitement de correctifs spécialement conçus avec la commande “git appliquer –rejeter«. Si vous essayez d’exécuter un correctif malveillant avec la commande “git appliquer» qui tente d’écrire dans un fichier via un lien symbolique, l’opération sera rejetée.
De son côté, la vulnérabilité CVE-2023-25815 : lorsque Git est compilé avec le support du préfixe d’exécution et s’exécute sans messages traduits, il utilise toujours la machinerie gettext pour afficher les messages, qui recherchent ensuite potentiellement des messages traduits dans des endroits inattendus. Cela a permis la publication malveillante de messages manipulés.
Dans Git 2.39.1, la protection contre la falsification des liens symboliques a été étendue pour bloquer les correctifs qui créent des liens symboliques et tentent d’écrire à travers eux. L’essence de la vulnérabilité en question est que Git n’a pas pris en compte le fait que l’utilisateur peut exécuter la commande “git apply –reject” pour écrire les parties rejetées du correctif sous forme de fichiers avec l’extension “.rej” et l’attaquant peut utiliser cette fonction pour écrire le contenu dans un répertoire arbitraire, dans la mesure où les droits d’accès actuels le permettent.
En outre, Correction de trois vulnérabilités qui n’apparaissent que sur Windows :
- CVE-2023-29012 : (il recherche l’exécutable doskey.exe dans le répertoire de travail du référentiel lors de l’exécution de la commande “Git CMD”, qui permet d’organiser l’exécution de son code sur le système de l’utilisateur)
- CVE-2023-25815: débordement de tampon lors du traitement des fichiers de localisation personnalisés dans gettext. Cette vulnérabilité affecte les utilisateurs travaillant sur des machines Windows auxquelles d’autres parties non approuvées ont un accès en écriture. En règle générale, tous les utilisateurs authentifiés ont l’autorisation de créer des dossiers sur C:\, ce qui permet aux acteurs malveillants d’injecter de mauvais messages dans git.exe.
- CVE-2023-29011: Possibilité de remplacer le fichier connect.exe lors du travail via SOCKS5. L’emplacement du fichier de configuration connect.exe est codé en dur dans un chemin qui est généralement interprété comme C:\etc\connectrc, ce qui est similaire à ce qui précède.
Comme solution alternative se protéger des vulnérabilités, il est recommandé d’éviter d’exécuter la commande «git appliquer –rejeter» lorsque vous travaillez avec des correctifs externes non vérifiés et que vous vérifiez le contenu de $GIT_DIR/config avant d’exécuter les commandes “git sous-module deinit“, “configuration git –rename-section” et “git config –remove-section” lorsqu’il s’agit de référentiels non approuvés.
Enfin, si vous souhaitez en savoir plus, vous pouvez consulter les détails dans le lien suivant.
Pour ceux qui souhaitent suivre la publication des mises à jour de paquets dans les distributions, vous pouvez le faire sur les pages de Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.