GitHub trouve 7 failles d’exécution de code dans ‘tar’ et npm CLI

0

L’équipe de sécurité de GitHub a identifié plusieurs vulnérabilités de haute gravité dans les packages npm, « tar » et « @npmcli/arborist », utilisés par npm CLI.

Le package tar reçoit en moyenne 20 millions de téléchargements hebdomadaires, tandis qu’arborist est téléchargé plus de 300 000 fois par semaine.

Les vulnérabilités affectent à la fois les utilisateurs Windows et Unix et, si elles ne sont pas corrigées, peuvent être exploitées par des attaquants pour exécuter du code arbitraire sur un système utilisant des packages npm non fiables.

Les chasseurs de bugs reçoivent 14 500 $ pour les ZIP Slip

Entre juillet et août de cette année, les chercheurs en sécurité et les chasseurs de bogues Robert Chen et Philip Papurt ont identifié des vulnérabilités d’exécution de code arbitraire dans les packages Node.js open source, tar et @npmcli/arborist.

Lors de la découverte de ces vulnérabilités, les chercheurs ont notifié npm en privé via l’un des programmes de bug bounty de GitHub.

Lors d’un examen plus approfondi des rapports des chercheurs, l’équipe de sécurité de GitHub a trouvé des vulnérabilités plus graves dans les packages susmentionnés, affectant à la fois les systèmes Windows et Unix.

Le package tar de Node.js reste une dépendance de base pour les installateurs qui doivent décompresser les packages npm après l’installation. Le package est également utilisé par des milliers d’autres projets open source et, en tant que tel, reçoit environ 20 millions de téléchargements chaque semaine. Le package arborist est une dépendance principale sur laquelle s’appuie npm CLI et est utilisé pour gérer les arborescences node_modules.

Ces vulnérabilités ZIP Slip posent un problème aux développeurs qui installent des packages npm non fiables à l’aide de npm CLI ou à l’aide de « tar » pour extraire des packages non fiables.

Par défaut, les packages npm sont expédiés sous forme de fichiers .tar.gz ou .tgz qui sont des archives de type ZIP et doivent donc être extraits par les outils d’installation.

Les outils d’extraction de ces archives devraient idéalement garantir que les chemins malveillants au sein de l’archive ne finissent pas par écraser les fichiers existants, en particulier les plus sensibles, sur le système de fichiers.

Mais, en raison des vulnérabilités répertoriées ci-dessous, le package npm, une fois extrait, pourrait écraser des fichiers arbitraires avec les privilèges de l’utilisateur exécutant la commande d’installation npm:

  1. CVE-2021-32803
  2. CVE-2021-32804
  3. CVE-2021-37701
  4. CVE-2021-37712
  5. CVE-2021-37713
  6. CVE-2021-39134
  7. CVE-2021-39135

« CVE-2021-32804, CVE-2021-37713, CVE-2021-39134 et CVE-2021-39135 ont spécifiquement un impact sur la sécurité de l’interface de ligne de commande npm lors du traitement d’une installation de package npm malveillant ou non fiable », explique Mike Hanley, chef de sécurité chez GitHub.

« Certains de ces problèmes peuvent entraîner l’exécution de code arbitraire, même si vous utilisez –ignore-scripts pour empêcher le traitement des scripts de cycle de vie des packages. »

L’équipe de sécurité de GitHub a remercié Chen et Papurt pour leur divulgation responsable et leur a accordé une prime totale de 14 500 $ pour leurs efforts visant à sécuriser GitHub.

npm recommandant aux utilisateurs de corriger les vulnérabilités

npm, propriété de GitHub, invite également les développeurs à corriger ces vulnérabilités dès que possible dans un tweet:

Les développeurs doivent mettre à niveau leurs versions de dépendance tar vers 4.4.19, 5.0.11 ou 6.1.10, et mettre à niveau @npmcli/arborist vers la version 2.8.2 pour corriger les vulnérabilités.

Pour npm CLI, les versions v6.14.15, v7.21.0 ou plus récentes contiennent le correctif. De plus, les versions 12, 14 ou 16 de Node.js sont fournies avec la version tar corrigée et peuvent être mises à niveau en toute sécurité, selon GitHub.

Les détails complets liés à ces vulnérabilités sont disponibles dans l’article de blog détaillé de GitHub.

Laisser un commentaire