Bulletin d'alerte Debian

DLA-3282-1 git -- Mise à jour de sécurité pour LTS

Date du rapport :
26 janvier 2023
Paquets concernés :
git
Vulnérabilité :
Oui
Références dans la base de données de sécurité :
Dans le système de suivi des bogues Debian : Bogue 1029114.
Dans le dictionnaire CVE du Mitre : CVE-2022-23521, CVE-2022-41903.
Plus de précisions :

Deux vulnérabilités ont été découvertes dans Git, un système de gestion de versions distribué. Un attaquant pouvait déclencher l’exécution de code dans des situations particulières.

  • CVE-2022-23521

    gitattributes est le mécanisme qui permet de définir des attributs pour les chemins. Ces attributs peuvent être définis en ajoutant un fichier .gitattributes au dépôt qui contient un ensemble de modèles de fichier et les attributs qui devraient être définis pour les chemins correspondant à ces modèles. Lors de l’analyse de gitattributes, plusieurs dépassements d'entier pouvaient se produire s'il existait un grand nombre de modèles de chemin, un grand nombre d’attributs pour un seul modèle ou quand les noms d’attribut déclaré étaient très grands. Ces dépassements pouvaient être déclenchés à l'aide d'un fichier .gitattributes contrefait faisant partie de l’historique des commits. Git coupait silencieusement les lignes supérieures à 2Ko lors de l’analyse de gitattributes à partir d’un fichier, mais pas lors de son analyse à partir de l’index. Par conséquent, le défaut dépendait de l'existence du fichier dans l’arbre de travail, dans l’index ou dans les deux. Ce dépassement d'entier pouvait aboutir à des lectures ou des écritures arbitraires de tas et conduire à une exécution de code à distance.

  • CVE-2022-41903

    git log peut afficher des commits dans un format arbitraire en utilisant ses spécificateurs --format. Cette fonctionnalité est aussi exposée à git archive à l’aide du gitattribute export-subst. Lors du traitement des opérateurs de remplissage, un dépassement d'entier existait dans pretty.c::format_and_pad_commit() où un size_t était stocké incorrectement comme int, puis ajouté comme décalage à memcpy(). Ce dépassement pouvait être déclenché directement par un utilisateur exécutant une commande invoquant le mécanisme de formatage de commit (par exemple, git log --format=...). Il pouvait aussi l’être indirectement à travers git archive à l’aide du mécanisme export-subst qui développe les spécificateurs de format dans les fichiers du dépôt lors d’un git archive. Ce dépassement d'entier pouvait aboutir à des lectures arbitraires de tas et conduire à une exécution de code arbitraire.

Pour Debian 10 Buster, ces problèmes ont été corrigés dans la version 1:2.20.1-2+deb10u7.

Nous vous recommandons de mettre à jour vos paquets git.

Pour disposer d'un état détaillé sur la sécurité de git, veuillez consulter sa page de suivi de sécurité à l'adresse : https://security-tracker.debian.org/tracker/git.

Plus d’informations à propos des annonces de sécurité de Debian LTS, comment appliquer ces mises à jour dans votre système et les questions fréquemment posées peuvent être trouvées sur : https://wiki.debian.org/LTS.