Le package npm Lottie Player compromis pour voler des cryptomonnaies
31 octobre 2024
0 minutes de lectureLe 31 octobre 2024, un autre package npm populaire a été compromis et utilisé pour détourner des cryptomonnaies.
En bref : compromission du package npm Lottie Player
La bibliothèque npm populaire @lottiefiles/lottie-player contenait du code malveillant invitant les utilisateurs à connecter leurs portefeuilles crypto.
Le code malveillant a été ajouté aux versions 2.0.5, 2.0.6 et 2.0.7 publiées sur npm, après la compromission du jeton d’un compte du registre npm utilisé pour publier des packages. Ces versions ont été retirées de npm, puis la version 2.0.8 a été publiée à partir du code sain du dépôt GitHub du projet. Son contenu est identique à celui de la version 2.0.4.
Versions sûres et vulnérables du package npm Lottie Player
Selon votre capacité à intervenir, une mise à niveau ou un retour à une version antérieure vous permettra de remédier au problème des trois versions malveillantes connues qui ont été publiées :
Versions réputées sûres :
@lottiefiles/lottie-player <= 2.0.4Versions réputées vulnérables :
@lottiefiles/lottie-player@2.0.5, @lottiefiles/lottie-player@2.0.6, and @lottiefiles/lottie-player@2.0.7Version réputée sûre :
@lottiefiles/lottie-player@2.0.8
Comment vérifier si vous êtes vulnérable avec Snyk
Vous avez peut-être utilisé un outil d’automatisation des dépendances pour gérer votre arbre de dépendances, et mis à niveau vers l’une des versions malveillantes publiées sur le registre npm. Vous avez aussi pu effectuer une mise à niveau à l’aveugle vers les dernières versions dans vos environnements CI ou de développement, puis enregistrer ces modifications.
Vous pouvez utiliser Snyk de différentes façons pour vérifier si vous avez installé les versions malveillantes.
Interface des rapports sur les dépendances de Snyk
Accédez à l’élément de menu « Dépendances » de votre groupe ou de votre organisation, appliquez les filtres souhaités pour affiner la recherche, puis ouvrez le champ de recherche « Dépendances » et saisissez « lottiefiles » pour effectuer une recherche en texte libre.
L’exemple ci-dessous montre qu’aucun résultat n’est trouvé : les projets recherchés n’utilisent donc pas du tout cette dépendance.

Si je remplace le texte par « lottie », je trouve d’autres dépendances dont le nom contient ce terme :

Une fois la dépendance sélectionnée, je peux vérifier dans quels projets elle est utilisée, quelles vulnérabilités la concernent, les problèmes de licence et d’autres informations sur la sécurité de la chaîne d’approvisionnement :

Snyk CLI
Si vous utilisez Snyk CLI dans vos workflows de développement ou vos processus de build CI, l’analyse Snyk vous indiquera si un package est vulnérable, par exemple :
Que s’est-il passé avec @lottiefiles/lottie-player ?
Comme lors de l’attaque similaire qui a touché la bibliothèque Polyfill, utilisée pour compromettre les utilisateurs via un CDN en juin 2024, et dont les origines remontent à janvier de la même année, cet incident visait lui aussi à voler des cryptomonnaies en s’en prenant aux portefeuilles crypto.
Des utilisateurs ont signalé dans le dépôt de code lottie-player qu’en utilisant la bibliothèque via un CDN, à partir de sources telles que https://unpkg.com/@lottiefiles/lottie-player@latest/dist/lottie-player.js ou https://cdn.jsdelivr.net/npm/@lottiefiles/lottie-player@2.0.5/dist/lottie-player.min.js, ils voyaient s’afficher un écran de connexion à un portefeuille crypto, comme celui-ci, dans le fil de discussion de l’issue GitHub :

De nombreux utilisateurs qui dépendaient de @lottiefiles/lottie-player via des CDN tiers sans verrouiller correctement la version de la dépendance ont automatiquement reçu la version compromise, proposée comme la dernière version. La publication d’une nouvelle version avec du code source réputé sûr (qui rétablit essentiellement le code de la version 2.0.4) leur a probablement aussi permis de recevoir automatiquement le correctif.
Cela dit, l’impact semble considérable, compte tenu du nombre de projets dépendant du composant lottie-player et du nombre de téléchargements des versions malveillantes :
73 packages npm dépendent de ce package
36 762 téléchargements de la version 2.0.4, réputée sûre, ont été enregistrés au cours des 7 derniers jours
Environ 890 téléchargements du correctif 2.0.8, publié récemment, ont été enregistrés au cours des 12 dernières heures
Comment atténuer les risques liés à la sécurité de la chaîne d’approvisionnement via les CDN ?
Pour prévenir de futurs incidents de sécurité comme la compromission du composant web lottie-player ou la dépendance malveillante polyfill, nous vous recommandons de suivre quelques bonnes pratiques de sécurité :
Mettez en place une politique de sécurité du contenu (CSP) pour empêcher les sources indésirables et non fiables d’injecter des scripts, des balises d’image et d’autres objets dans votre application web.
Verrouillez toujours les versions de vos dépendances, qu’elles soient récupérées via des ressources CDN sur le réseau ou par l’intermédiaire d’un gestionnaire de packages.
Suivez les recommandations d’atténuation de l’équipe officielle de Lottie Player dans son commentaire ici et sur ses autres canaux officiels.
Vérifier vos applications
Si vous souhaitez tester vos applications et vos projets, mais que vous n’êtes pas client de Snyk, vous pouvez vous inscrire à un essai gratuit pour effectuer les tests ci-dessus. Cet essai vous permet d’analyser vos dépendances open source et vos images de conteneurs dans l’interface de ligne de commande ou votre SCM, afin de vérifier si vous utilisez l’une des versions vulnérables de lottie-player et de détecter d’éventuelles autres vulnérabilités dans vos projets.
Sécurisez votre code pendant le développement
Snyk analyse votre code pour détecter les problèmes de qualité et de sécurité, et vous conseille sur leur correction directement dans votre IDE.
