🔍 Contexte

Analyse technique publiée le 20 mai 2026 par SafeDep, portant sur la compromission du package npm art-template (moteur de templates JavaScript, ~26 000 téléchargements hebdomadaires), confirmée par l’auteur original le 20 mai 2026.

🎯 Nature de l’attaque

L’attaque repose sur une prise de contrôle de comptes mainteneurs npm (account takeover). Trois comptes npm non légitimes (v4v5qc, npmpacketmaintainmember7, daughtrymom) ont publié des versions malveillantes entre mars 2025 et mai 2026. Le compte GitHub original (aui) a été renommé en goofychris fin novembre 2024, précédant la compromission npm de trois mois.

📦 Versions compromises

  • 4.13.3 (12 mars 2025) : injection obfusquée via String.fromCharCode, package incomplet
  • 4.13.4 (14 mars 2025) : aucune injection détectée
  • 4.13.5 (19 mai 2026) : injection en clair vers v3.jiathis.com/code/jia.js
  • 4.13.6 (20 mai 2026) : injection en clair vers v3.jiathis.com/code/art.js

La dernière version propre est 4.13.2 (novembre 2018).

⚙️ Chaîne d’infection (5 étapes)

  1. Stage 1 : Code injecté dans lib/template-web.js (bundle navigateur uniquement) chargeant un script externe depuis v3.jiathis.com
  2. Stage 2 : Payload de 3 906 octets (filtré par header Referer) — injecte Baidu Analytics sur tous les visiteurs + iframe cachée dans un Shadow DOM fermé ciblant uniquement les iPhones
  3. Stage 3 : Chaîne d’iframes imbriquées vers utaq.cfww.shop
  4. Stage 4 : Loader obfusqué de 50 Ko (49554fde7424c31c.js) avec système de modules, fingerprinting navigateur (WebRTC, MathML, Touch, Safari), classification en 5 catégories, boucle C2 toutes les 10 secondes vers l1ewsu3yjkqeroy.xyz
  5. Stage 5 : Kit d’exploit Coruna (14 modules, 606 Ko) — 5 chaînes d’exploitation couvrant iOS 13.0 à 17.2.1, 23 vulnérabilités dont CVE-2024-23222 (type confusion JSC, CVSS 8.8)

💣 Capacités techniques du kit Coruna

  • Type confusion WebAssembly + JIT heap spray
  • Primitives addrof/fakeobj via BigUint64Array
  • Bypass ASLR via parsing du dyld shared cache (arm64e)
  • Bypass JIT cage, injection de code natif ARM64
  • Shellcode 31 Ko (80 fonctions, 26 syscalls dont ptrace PT_DENY_ATTACH, mmap, mprotect)
  • Implant final PLASMAGRID ciblant les portefeuilles crypto (MetaMask, Trust Wallet, Phantom, Exodus)

🌐 Infrastructure

  • Domaine de staging : v3.jiathis.com (ancien service JiaThis, domaine expiré réenregistré)
  • Serveur exploit : utaq.cfww.shop (IP 180.178.50.158, AS45753 Netsec Limited, Hong Kong)
  • C2 : l1ewsu3yjkqeroy.xyz (fronté Cloudflare : 172.67.141.14, 104.21.40.254)

🕵️ Attribution

Google TAG a attribué l’usage de Coruna à trois groupes : un vendeur de surveillance commerciale, le groupe d’espionnage russe UNC6353, et l’acteur financièrement motivé chinois UNC6691. Les éléments de cette instance (Baidu Analytics, infrastructure JiaThis, domaines chinois) sont cohérents avec le profil UNC6691.

📄 Type d’article

Analyse technique approfondie documentant une compromission de chaîne d’approvisionnement npm avec extraction complète des IoC, analyse des payloads et attribution partielle.

🧠 TTPs et IOCs détectés

Acteurs de menace

TTP

  • T1195.002 — Compromise Software Supply Chain (Initial Access)
  • T1586.003 — Compromise Accounts: Cloud Accounts (Resource Development)
  • T1059.007 — Command and Scripting Interpreter: JavaScript (Execution)
  • T1027 — Obfuscated Files or Information (Defense Evasion)
  • T1497.003 — Virtualization/Sandbox Evasion: Time Based Evasion (Defense Evasion)
  • T1071.001 — Application Layer Protocol: Web Protocols (Command and Control)
  • T1102 — Web Service (Command and Control)
  • T1041 — Exfiltration Over C2 Channel (Exfiltration)
  • T1539 — Steal Web Session Cookie (Credential Access)
  • T1185 — Browser Session Hijacking (Collection)
  • T1518.001 — Software Discovery: Security Software Discovery (Discovery)
  • T1082 — System Information Discovery (Discovery)

IOC

  • IPv4 : 180.178.50.158AbuseIPDB · VT · ThreatFox
  • IPv4 : 172.67.141.14AbuseIPDB · VT · ThreatFox
  • IPv4 : 104.21.40.254AbuseIPDB · VT · ThreatFox
  • Domaines : v3.jiathis.comVT · URLhaus · ThreatFox
  • Domaines : git.youzzjizz.comVT · URLhaus · ThreatFox
  • Domaines : utaq.cfww.shopVT · URLhaus · ThreatFox
  • Domaines : l1ewsu3yjkqeroy.xyzVT · URLhaus · ThreatFox
  • URLs : https://v3.jiathis.com/code/jia.jsURLhaus
  • URLs : https://v3.jiathis.com/code/jia.js?uid=artemplateURLhaus
  • URLs : https://v3.jiathis.com/code/art.jsURLhaus
  • URLs : https://utaq.cfww.shop/URLhaus
  • URLs : https://utaq.cfww.shop/gooll/gooll.htmlURLhaus
  • URLs : https://l1ewsu3yjkqeroy.xyz/api/ip-sync/syncURLhaus
  • URLs : https://hm.baidu.com/hm.js?7d86eb847ecfd3c972fa457a6abaa0daURLhaus
  • SHA256 : 273206e2973df6ba7474aa66693797c98dcf26b794da4c3e863ab8d8c694868dVT · MalwareBazaar
  • SHA256 : 5b5fe5d92808a732d0d44246cd706295cc739ed7f4dcae19112df666bc5d4f7dVT · MalwareBazaar
  • SHA256 : 101afde88ff8b5c02fd341eda55022a39203088c2ff11dcb73214911cf5afb77VT · MalwareBazaar
  • SHA256 : d8e3973a0b3c5359d1f53a22491b56bdd31dee13a51c01c7126bc6694584512fVT · MalwareBazaar
  • SHA256 : f31bdd069fe7966ae11be1f78ee5dd44445938856dd1df12379e0e84a6851f5cVT · MalwareBazaar
  • SHA1 : 57620206d62079baad0e57e6d9ec93120c0f5247VT · MalwareBazaar
  • SHA1 : 14669ca3b1519ba2a8f40be287f646d4d7593eb0VT · MalwareBazaar
  • Emails : eb8org@gmail.com
  • Emails : npmpacketmaintainmember7@proton.me
  • Emails : goofychris69@gmail.com
  • CVEs : CVE-2024-23222NVD · CIRCL
  • Fichiers : template-web.js
  • Fichiers : 49554fde7424c31c.js
  • Fichiers : jia.js
  • Fichiers : art.js
  • Fichiers : gooll.html

Malware / Outils

  • Coruna (framework)
  • PLASMAGRID (other)

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

  • ⬜ safedep.io — source non référencée (0pts)
  • ✅ 27309 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 30 IOCs dont des hashes (15pts)
  • ✅ 1/12 IOC(s) confirmé(s) (AbuseIPDB, MalwareBazaar, ThreatFox, URLhaus, VirusTotal) (8pts)
  • ✅ 12 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ✅ acteur(s) identifié(s) : UNC6691, UNC6353 (5pts)
  • ⬜ 0/1 CVE(s) confirmée(s) (0pts)

IOCs confirmés externellement :

  • utaq.cfww.shop (domain) → VT (6/91 détections)

🔗 Source originale : https://safedep.io/art-template-npm-supply-chain-compromise/