HeadlinesBriefing favicon HeadlinesBriefing.com

Chargeur chiffré dans la bibliothèque NPM

Hacker News •
×

Nous avons trouvé un implant d'accès à distance caché dans mathmain, un paquet npm qui copie la populaire bibliothèque mathjs. Le code malveillant est livré chiffré. Il reste dormant jusqu'à ce qu'un programme résolve une équation spécifique avec la bibliothèque. Cette équation est la clé. Lorsque la clé correspond, le paquet déchiffre une charge utile et l'exécute. La charge utile reçoit des commandes de l'attaquant et les exécute sur l'hôte. Elle utilise un service de chat public et un réseau blockchain pour son canal de commande.

Nous avons commencé par une analyse Safe Dep de mathmain le 17 septembre 2026. Le paquet ressemblait à une copie de mathjs avec un nom différent et un code obscurci. Un appel ajouté dans le solveur nous a conduit au chargeur. Près de la fin de lusolve(), nous avons trouvé un appel supplémentaire dans la version Common JS. Le solveur avait déjà calculé son résultat. Il a ensuite transmis des données de la matrice triangulaire inférieure pour appeler remove Solve Validation().

Nous avons suivi remove Solve Validation() jusqu'à is Graph(x) dans lib/cjs/utils/is.js. La fonction ajoutée is Graph() déchiffre et charge le code. Elle convertit son entrée en une chaîne JSON et utilise cette chaîne comme mot de passe. Elle déchiffre d'abord un nom de fichier. Elle passe ensuite le chemin du fichier et le mot de passe à event(), et charge le chemin retourné avec require().

Les données de la matrice deviennent un mot de passe. Dans lib/cjs/utils/event.js, nous avons trouvé les fonctions de déchiffrement. Elles utilisent scrypt pour transformer le mot de passe en une clé de 256 bits. Elles déchiffrent ensuite les données avec AES-GCM. Le chargeur écrit et exécute le fichier. L'assistant event() déchiffre le fichier, écrit le résultat sur le disque et retourne le chemin de sortie.

Entités clés : Entreprises : mathjs, Safe Dep

FAQ : Comment le paquet npm malveillant mathmain déchiffre-t-il sa charge utile ?

Le paquet utilise une équation spécifique résolue par la bibliothèque mathjs comme clé. Lorsque l'équation est résolue, les données matricielles résultantes sont converties en une chaîne JSON et utilisées comme mot de passe pour déchiffrer la charge utile via scrypt et AES-GCM.

Question FAQ : Comment le paquet npm malveillant mathmain déchiffre-t-il sa charge utile ?

Réponse FAQ : Le paquet utilise une équation spécifique résolue par la bibliothèque mathjs comme clé. Lorsque l'équation est résolue, les données matricielles résultantes sont converties en une chaîne JSON et utilisées comme mot de passe pour déchiffrer la charge utile via scrypt et AES-GCM.