Dix paquets npm avec fautes de frappe intentionnelles, téléversés le 4 juillet 2025, ont été découverts en téléchargeant un infostealer qui cible des données sensibles sur les systèmes Windows, Linux et macOS. Ces paquets, imitant des bibliothèques populaires, ont échappé à la détection grâce à plusieurs couches d'obfuscation et ont accumulé près de 10 000 téléchargements. La société de cybersécurité Socket a signalé la menace, notant que les paquets restent disponibles dans le registre.
Le 4 juillet 2025, des acteurs malveillants ont téléversé dix paquets malveillants sur le registre npm, utilisant le typosquatting pour imiter des logiciels légitimes comme TypeScript, discord.js, ethers.js, nodemon, react-router-dom et zustand. Les paquets — typescriptjs, deezcord.js, dizcordjs, dezcord.js, etherdjs, ethesjs, ethetsjs, nodemonjs, react-router-dom.js et zustand.js — ont trompé les développeurs en apparaissant dans les résultats de recherche des noms réels.
Lors de l'installation, un script postinstall s'active, créant un terminal caché qui exécute 'app.js' et efface la fenêtre pour éviter d'être remarqué. Ce chargeur utilise quatre couches d'obfuscation : un wrapper eval auto-décodant, une décryptage XOR avec une clé dynamique, une charge utile encodée en URL et une obfuscation lourde du flux de contrôle. Il affiche un faux CAPTCHA ASCII dans le terminal pour sembler légitime, puis envoie la géolocalisation de la victime et l'empreinte du système à un serveur de commande et de contrôle.
Le malware télécharge ensuite un binaire infostealer de 24 Mo emballé avec PyInstaller adapté au système d'exploitation hôte. Cet outil extrait les identifiants des trousseaux du système, y compris Windows Credential Manager, macOS Keychain et options Linux comme SecretService, libsecret et KWallet. Il cible également les navigateurs basés sur Chromium et Firefox pour les profils, mots de passe sauvegardés et cookies de session, ainsi que les clés SSH dans des répertoires courants et des jetons comme OAuth, JWT et clés API.
Les données volées sont compressées en archives et mises en scène dans /var/tmp ou /usr/tmp avant l'exfiltration vers le serveur de l'attaquant à 195.133.79.43. Malgré le rapport de Socket à npm, les paquets étaient encore disponibles fin octobre 2025. Les experts exhortent les développeurs affectés à supprimer les paquets, à faire pivoter toutes les identifiants et à vérifier les sources auprès d'éditeurs réputés pour prévenir les compromissions.
