Contexte et découverte

En septembre 2026, les chercheurs d’OX Security ont identifié un groupe de 101 paquets npm qui utilisent le projet open source Baileys – une bibliothèque JavaScript permettant d’interagir avec l’API non officielle de WhatsApp. Ces paquets ont été téléchargés 490 000 fois au total, dont 116 000 téléchargements au cours des trente derniers jours, indiquant une diffusion rapide dans la communauté des développeurs Node.js.

Les premiers signaux sont apparus en août 2026 lorsqu’une analyse de SafeDep a mis en évidence des forks de Baileys capables d’ajouter l’utilisateur à des canaux WhatsApp contrôlés par les auteurs et d’injecter une URL publicitaire dans chaque média envoyé par le bot. Peu après, Xygeni Security a signalé un autre fork, @dappaoffc/baileys-mod, qui souscrivait la session authentifiée du développeur à des « newsletter » WhatsApp.

Mécanismes d’infection

Les paquets malveillants s’appuient tous sur la même logique : dès l’installation, le code exécute la fonction de connexion du compte WhatsApp du développeur, puis appelle l’API de Baileys pour inscrire le numéro dans un groupe sans aucune interaction utilisateur. Cette opération se fait en arrière‑plan, rendant la compromission difficile à détecter tant que le développeur ne vérifie pas manuellement les groupes auxquels il a été ajouté.

Le modèle d’abus repose sur la confiance implicite accordée aux dépendances npm. En publiant des paquets sous des noms variés (@nexustechpro/baileys, @badzz88/baileys, @chatunity/baileys, etc.), les acteurs ont multiplié les points d’entrée tout en conservant un code source très similaire, ce qui facilite la propagation via les chaînes de dépendances.

Analyse des variantes et portée

OX Security a distingué trois variantes :

Variant 1 (19 paquets) : récupère les identifiants de groupe depuis un dépôt GitHub au moment de l’exécution.

Cette approche permet aux attaquants de modifier la liste de cibles sans mettre à jour les paquets publiés.

Variant 2 (60 paquets) : intègre les identifiants de groupe en clair dans le code source.

Le texte lisible facilite l’audit, mais la plupart des développeurs ne consultent pas le code des dépendances avant l’installation.

Variant 3 (14 paquets) : encode et obfuscate les identifiants, rendant leur extraction plus ardue.

Les groupes ciblés sont majoritairement indonésiens, vendant des services de bots, des comptes de jeux mobiles (Mobile Legends, TikTok) ou des « premium APK ». Certains canaux affichent plusieurs centaines à quelques milliers d’abonnés, créant une illusion de légitimité. La réutilisation des mêmes identifiants et des mêmes comptes GitHub entre paquets montre une infrastructure partagée, ce qui signifie que chaque téléchargement alimente plusieurs groupes simultanément.

Recommandations de mitigation

Les développeurs doivent d’abord vérifier s’ils ont été ajoutés à des groupes inconnus via l’interface WhatsApp et les bloquer immédiatement. Ensuite, il est recommandé d’ajouter des règles de détection dans les pipelines CI / CD pour interdire les paquets contenant le mot‑clé « baileys » lorsqu’ils requièrent la connexion d’un compte personnel.

Enfin, privilégier les versions officielles du projet Baileys publiées sur le dépôt GitHub officiel, vérifier l’intégrité des dépendances via npm audit et éviter les paquets qui demandent l’accès à un compte WhatsApp personnel. Une surveillance continue des téléchargements et des alertes de sécurité autour des bibliothèques de messagerie est indispensable pour prévenir de futures campagnes similaires.