🔍 Contexte

Analyse publiée par Checkmarx Zero le 17 septembre 2026, portant sur une campagne de supply chain npm active ciblant les développeurs JavaScript via un paquet malveillant nommé indexed-btree, qui imite le paquet légitime sorted-btree.

🎯 Technique d’attaque principale

Contrairement aux attaques classiques, ce paquet n’utilise aucun script preinstall/postinstall. Le code malveillant est dissimulé directement dans la méthode prototype BTree.prototype.set, déclenchée lors de l’utilisation normale de la bibliothèque. Cette approche contourne les restrictions introduites par npm v12 sur les lifecycle scripts.

Le déclencheur charge sharedLoad.min.js, un fichier obfusqué (encodage de tableau de chaînes, rotation auto-checksummée) qui constitue le premier stage du malware.

🦠 Comportement du malware

  • Fingerprinting système : collecte OS, architecture, hostname, CPU, mémoire, uptime
  • Exfiltration : envoi vers un canal Slack et un chat Telegram codés en dur
  • C2 via smart contract : contrat déployé sur le testnet Ethereum Sepolia utilisé comme canal C2 résilient, résistant aux takedowns de domaines/IP
  • Échange de clés on-chain : génération d’une paire X25519, récupération de la clé publique de l’attaquant depuis le contrat, calcul d’un secret partagé ECDH pour dériver une clé AES symétrique, déchiffrement du payload de second stage
  • Nettoyage des traces : suppression des fichiers malveillants et du code injecté dans le prototype

📦 Paquets affectés

Paquet Téléchargements
btree-core 1 951 274
btree-leaderboard 493 685
btree-range-store 468 092
ordered-kv-index 448 184
sliding-score-window 448 024
btree-time-index 425 312
priority-slot-queue 402 860
btree-lru-cache 372 185
neighbor-key-map 366 019
mutex-forge non précisé

💰 Impact financier

Les attaquants ont accumulé 109 ETH (~230 933 €) via leur smart contract.

🎭 Légitimité apparente

Le paquet est accompagné d’un dépôt GitHub factice avec des commits crédibles et un compte avec photo générée par IA, sans code malveillant visible dans le repo.

📄 Type d’article

Analyse technique détaillée publiée par un éditeur de sécurité (Checkmarx), visant à documenter une campagne active, exposer les IOCs et illustrer l’évolution des tactiques d’attaque sur npm.

🧠 TTPs et IOCs détectés

TTP

  • T1195.001 — Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
  • T1027 — Obfuscated Files or Information (Defense Evasion)
  • T1041 — Exfiltration Over C2 Channel (Exfiltration)
  • T1102 — Web Service (Command and Control)
  • T1082 — System Information Discovery (Discovery)
  • T1070.004 — Indicator Removal: File Deletion (Defense Evasion)
  • T1573.001 — Encrypted Channel: Symmetric Cryptography (Command and Control)

IOC

  • Domaines : eth-sepolia.g.alchemy.comVT · URLhaus · ThreatFox
  • Domaines : sepolia.infura.ioVT · URLhaus · ThreatFox
  • URLs : https://eth-sepolia.g.alchemy.com/v2/D2-TbkB2m05WXSnSDOCDIURLhaus
  • URLs : https://sepolia.infura.io/v3/dc7257d09fab42eca2c354c32fec1938URLhaus
  • Fichiers : sharedLoad.min.js
  • Fichiers : indexed-btree

⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 20 septembre 2026 et n’ont pas fait l’objet d’une vérification externe. Un indicateur peut avoir été réattribué depuis : une IP de C2 peut redevenir un service légitime, un domaine sinkholé peut changer de propriétaire. Aucune garantie d’exactitude ni d’actualité — contrôlez leur validité avant tout usage opérationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.

Malware / Outils

  • indexed-btree (loader)
  • sharedLoad.min.js (loader)

🟢 Indice de vérification factuelle : 70/100 (haute)

  • ✅ checkmarx.com — source reconnue (Rösti community) (20pts)
  • ✅ 8098 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 6 IOCs (IPs/domaines/CVEs) (10pts)
  • ⬜ 0/4 IOCs confirmés externellement (0pts)
  • ✅ 7 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ pas de CVE à vérifier (0pts)

🔗 Source originale : https://checkmarx.com/zero-post/npm-btree-malware-campaign-affects-millions-of-downloads-no-need-for-install-script/