3 pièce(s) jointe(s)
Publication de la v2.17.1 de Git qui corrige une vulnérabilité sévère
La version 2.17 de Git, l’outil open source de gestion de versions, est disponible
Et intègre de nouvelles fonctionnalités dont une d’accélération
L’équipe du projet Git annonce la disponibilité de la version 2.17 de Git, l’outil open source de gestion de versions des logiciels. GitHub, la plateforme d’hébergement et de gestion de développement de logiciel, s’est fait le relais de l’information.
Cette version intègre des correctifs relatifs à des comportements erratiques de certaines commandes disponibles. La liste est assez longue et comprend git status, git commit, git add – des commandes de base de l’outil – qui causaient des soucis dans la version 2.16 de l’outil de gestion de versions. Le détail à ce propos dans la note de version détaillée. Avec Git 2.17, il faut également s’attendre à un minimum de trois nouvelles fonctionnalités qui sautent à l’œil : coloration de code déplacé, accélération et recherche d’objets.
Git 2.17 est synonyme d’accès rapide à l’information. Cette version est en effet dotée d’une fonctionnalité de recherches d’objets au sein de l’historique intégré au logiciel. Les utilisateurs de l’outil de gestion de versions disposent désormais de la commande --find-object à utiliser en tandem avec un hash d’objet pour faire apparaitre tous les nœuds de l’arborescence contenant ce dernier – ou une modification – au sein de l’arborescence. Plutôt intéressant puisque la fonctionnalité retourne les chemins d’accès.
L’un des problèmes auquel les développeurs qui travaillent sur des projets avec un nombre de fichiers très important est que le temps de réponse de la commande git status augmente considérablement. Git 2.17 vient avec watchman pour apporter réponse à cet état de choses en court-circuitant l’appel système status() et ses accès en lecture répétés sur le disque dur.
L’outil permet de rendre la charge de travail liée au suivi des modifications proportionnelle au nombre de fichiers modifiés en s’appuyant sur le système d’exploitation lui-même, ce qui raccourcit les temps d’attente. Watchman – proposé par Facebook sous licence Apache 2.0 – est disponible sur Windows (7 et versions ultérieures), Linux et macOS (10.X). Enfin, rien de tel qu’un bon visuel pour introduire à la dernière fonctionnalité phare de cette version.
Avec Git 2.17, les développeurs disposent de la commande --color-moved. À utiliser dans les cas de passage en revue de commits pour savoir quelles sections de codes ont fait l’objet de déplacements. En guise de résultat, la commande renvoie une version du commit colorée en conséquence. L’équipe du projet précise que les couleurs sont configurables. Dans cet exemple, le bleu représente les portions de code déplacées d’une zone à l’autre du texte tandis que le vert et le rouge mettent les modifications au sein de ces blocs en lumière.
Grosso modo, c’est GitHub qui, en plus de l’outil git-sizer annoncé le mois passé, s’enrichit de fonctionnalités qui étendent encore plus l’arsenal du développeur. Toutefois, attention, car ceux qui ont fait le choix de plateformes alternatives comme gitweb, Gitstack, Gitlab, etc. peuvent également profiter de ces nouveautés. À chacun ses préférences.
Source
Blog GitHub
Et vous ?
:fleche: Que pensez-vous de ces nouvelles fonctionnalités ?
:fleche: Laquelle vous paraît la plus utile ?
Voir aussi
:fleche: GitHub veut développer un nouvel éditeur de texte multiplateforme et ultraperformant basé sur Electron, Xray est encore un projet expérimental
:fleche: GitHub : des chercheurs estiment que plus de la moitié des codes écrits en Java, Python, C/C++ et JavaScript sont dupliqués
1 pièce(s) jointe(s)
Publication de la v2.17.1 de Git qui corrige une vulnérabilité sévère
Publication de la v2.17.1 de Git qui corrige une vulnérabilité sévère,
permettant l'exécution d'un code arbitraire lors du clone d'un dépôt malicieux.
Le 29 mai dernier, gitster le mainteneur du projet Git a annoncé sur la liste de diffusion du projet la publication de la version v2.17.1 de Git afin de corriger une faille de sécurité sévère nommée CVE-2018-11235.
Des patchs correctifs ont également été publiés via les tags v2.13.7, v2.14.4, v2.15.2 et v2.16.4 sur les branches en maintenance.
Que fait cette vulnérabilité ?
Cette vulnérabilité n'affecte que les dépôts contenant des sous-modules et exécutant un clone récursif des sous-modules (git clone --recurse-submodules). Elle consiste en l'exécution du hook post-checkout d'un sous module malicieux.
Normalement les scripts de hooks ne font pas partie des dépôts Git. Ils sont générés par Git lors du clone et non lus depuis le serveur. Dans ce cas de figure, des hooks définis dans un sous-module construit avec des chemins d'accès appropriés (via ../ par exemple ou un lien symbolique) peuvent être lus et exécutés dès la fin du clone récursif via le hook post-checkout (lequel s'exécute dès qu'un fichier versionné est placé dans l'espace de travail, donc dans ce cas de figure lors du checkout du sous module vérolé par le dépôt parent).
Que fait le patch ?
Il interdit tout simplement la configuration d'un sous module (fichier .gitmodules) avec un chemin d'accès contenant un segment ../.
Impact sur l'écosystème ?
Git n'est pas utilisé seulement par les développeurs comme SCM, il est également utilisé comme vecteur de déploiement dans pas mal de cas ce qui augmente considérablement l'impact de cette faille.
Le gestionnaire de paquets JavaScript npm ne limite pas les dépendances à des paquets construits via npm et hébergés sur le registre. On peut tout à fait définir une dépendance comme étant un dépôt Git quelconque. Dans ce cas de figure le client npm délègue au Git installé localement l'installation (le clone donc) du dépôt. L'équipe npm a donc publié sur son blog une recommandation visant à contrôler sa version locale de Git et à la mettre à jour si besoin.
De même l'équipe Microsoft gérant le Visual Studio Team Services (VSTS) bloque désormais tous les dépôts contenant une telle configuration afin de ne pas servir de vecteur d'attaque. Edward Thomson a publié un billet sur le blog DevOps de Microsoft à ce sujet.
Les autres hébergeurs classiques de dépôts comme GitHub et GitLab ont également pris des mesures en ce sens, ainsi un développeur souhaitant pousser un dépôt démontrant la vulnérabilité n'a pas pu et indique seulement comment générer un tel dépôt.
Sources
- Liste de diffusion du projet Git.
- Le blog DevOps de Microsoft.
- Le blog officiel de npm, Inc.
- Ticket de la vulnérabilité CVE-2018-11235 sur mitre.org.
Et vous ?
:fleche: Mettez-vous régulièrement à jour votre version de Git ?
:fleche: Faites-vous attention à ce que votre infrastructure utilise également des logiciels à jour ?