DuckDB sur NPM : compte compromis, packages NPM malveillants

Par:
francoistonic

jeu, 11/09/2025 - 08:23

DuckDB met en garde contre la compromission de packages NPM officiels. La campagne malveillante a été découverte en début de semaine !

4 packages malveillants ont été détectés :

  • @duckdb/node-api@1.3.3
  • @duckdb/node-bindings@1.3.3
  • duckdb@1.3.3
  • @duckdb/duckdb-wasm@1.29.2

DuckDB a rapidement déprécié la version en cause et fait supprimer les paquets en cause. Une nouvelle version des packages a été déployée avec un changement de numérotation : 1.3.4 et 1.30.0. Une des techniques utilisés est le classique phishing par mail se faisant passer pour le support NPM. Ce phishing permettait ensuite aux hackers d'envoyer le code malveillant. Les hackers ont ensuite remplacé les packages officiels par des paquets compromis intégrant des mécanismes pour faire de la cryptomonnaie. L'auteur de l'attaque est un certain Qix. 

Résultat : 360 000 téléchargements ! La question est comment des paquets ont pu être "facilement" remplacés. La sécurité 2FA ne suffit plus à garantir un minimum de sécurité. Le compte DuckDB officiel a-t-il été compromis ? Si oui, comment ? Ici, ce n'est pas une attaque Typosquatting. Bien entendu, le code malveillant était obfusqué.

L'attaque se comprend ainsi : 

- compromission d'une manière ou d'une autre du compte duckdb_admin qui maintient 12 paquets NPM

- seuls 4 paquets ont été changés avec le code malveillant

Un mainteneur officiel a confirmé la technique du phishing en suivant les liens du (faux) mail. "L'un des responsables a lu ce texte et l'a trouvé plutôt raisonnable. Il a suivi le lien (aujourd'hui disparu) vers un site web hébergé sous le domaine npmjs.help. Ce site web contenait une copie parfaite du site npmjs.com. Il s'est connecté avec l'utilisateur et le mot de passe duckdb_admin, suivis de l'authentification à deux facteurs. Là encore, le profil utilisateur, les paramètres, etc. étaient une copie parfaite du site npmjs.com, y compris toutes les données utilisateur. Comme demandé dans l'e-mail, il a ensuite réinitialisé la configuration de l'authentification à deux facteurs." a commenté DuckDB.

Les contre-mesures possibles :

- n'installer pas les paquets compromis

- installer uniquement les versions saines et clairement identifiées

- auditer les installations récentes et le trafic réseau

Qix ne s'est pas arrêté à DuckDB :

Réaction officielle : https://github.com/duckdb/duckdb-node/security/advisories/GHSA-w62p-hx95-gf2c