Code malveillant trouvé dans le programme d'installation de purescript npm

npm purscript

Ça fait quelques jours un code malveillant a été détecté dans les dépendances du package npm avec le programme d'installation PureScript, qui se manifeste lors de la tentative d'installation du package purescript.

Code malicieux intégré via les dépendances load-from-cwd-or-npm et les dépendances de la carte de vitesse. Il convient de noter que l'auteur original du paquet npm avec le programme d'installation PureScript, qui jusqu'à récemment était engagé dans la maintenance de ce paquet npm, mais le paquet a été envoyé à d'autres responsables, est responsable de l'accompagnement des paquets avec ces dépendances.

Au sujet du problème

Le problème a été découvert par l'un des nouveaux analystes du package, à qui les droits de maintenance ont été transférés après de nombreux désaccords et de vilaines discussions avec l'auteur original du package npm purescript.

Les nouveaux responsables sont responsables du compilateur PureScript et ils ont insisté sur le fait que le package NPM avec son programme d'installation devrait être réparé par les responsables eux-mêmes, et non par un développeur extérieur au projet.

L'auteur du package npm avec le programme d'installation PureScript a longtemps été en désaccord, mais a ensuite abandonné et a donné accès au référentiel. Cependant, certaines dépendances ont été laissées sous son contrôle.

La semaine dernière, la sortie du compilateur PureScript 0.13.2 a été annoncée et les nouveaux responsables ont préparé la mise à jour correspondante du paquet npm avec l'installateur, pour lequel le code malveillant a été détecté.

Le code malveillant a d'abord été inséré dans le package npm "load-from-cwd-or-npm" dans la version 3.0.2 puis dans le package rate-map de la version 1.0.3. Ces derniers jours, plusieurs versions des deux packages ont été publiées.

Déplacé du post accompagnant l'auteur du paquet npm avec le programme d'installation de PureScript, il a déclaré que son compte avait été compromis par des attaquants inconnus.

Toutefois, dans la forme actuelle, les actions du code malveillant n'étaient limitées qu'en sabotant l'installation du package, qui était la première version des nouveaux responsables. Des actions malveillantes ont été bouclées lors de la tentative d'installation d'un package avec la commande "npm i -g purescript" sans effectuer aucune activité malveillante explicite.

Deux attaques ont été identifiées

En résumé, le code sabote le programme d'installation de purescript npm pour empêcher le téléchargement de se terminer, provoquant le blocage du programme d'installation lors de l'étape «Vérifier si un binaire précompilé est fourni pour votre plate-forme».

Le premier exploit a fait cela en cassant le paquet load-from-cwd-or-npm de sorte que tout appel à loadFromCwdOrNpm () renverrait une séquence d'intercommunication au lieu du package attendu (dans ce cas, le package de requête, que nous utilisions pour télécharger les binaires du compilateur). La deuxième itération de l'exploit a fait cela en modifiant un fichier source pour empêcher un rappel de téléchargement d'être déclenché.

4 jours les développeurs ont compris la source des failles et se préparaient à publier une mise à jour pour exclure load-from-cwd-o-npm des dépendances, les attaquants ont publié une autre mise à jour load-from-cwd-or-npm 3.0.4, où le code malveillant a été supprimé.

Cependant, une mise à jour d'une autre dépendance Rate-Map 1.0.3 a été publiée presque immédiatement, dans laquelle un correctif a été ajouté qui bloque l'appel de rappel pour le téléchargement.

Autrement dit, dans les deux cas, les changements dans les nouvelles versions de load-from-cwd-or-npm et la cadence de la carte étaient de la nature d'un écart apparent.

De plus, dans le code malveillant, il y avait une vérification qui a déclenché les actions ayant échoué uniquement lors de l'installation de la version des nouveaux responsables et n'apparaissait pas du tout lors de l'installation des versions précédentes.

Les développeurs ont résolu le problème en publiant une mise à jour dans laquelle les dépendances problématiques ont été supprimées.

Pour empêcher le code compromis d'être installé sur les systèmes des utilisateurs après avoir essayé d'installer la version problématique de PureScript.

Enfin le développeur recommande à tous ceux qui ont lesdites versions du package sur leur système supprimez le contenu des répertoires node_modules et des fichiers package-lock.json, puis définissez la version 0.13.2 de purescript.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.