🔍 Contexte
Publié le 31 août 2026 par l’équipe de recherche de Socket (socket.dev), cet article documente la découverte de 13 packages Composer malveillants sur Packagist, répartis sous cinq namespaces vendeurs (vsmov, vsphim, haiau009, chilltvcms, ophimcms), ciblant les sites de streaming vietnamiens basés sur OphimCMS et KKPhim (CMS PHP/Laravel open source).
🎯 Mécanisme de livraison
Les acteurs de la menace ont forké des thèmes légitimes sous leurs propres namespaces, en trojanisant les assets front-end JavaScript embarqués. Tout site installant l’un de ces thèmes sert du JavaScript malveillant à chaque visiteur. Deux branches d’attaque coexistent :
- Branche 1 – Fraude publicitaire et redirections gambling : injection d’une bannière mobile ciblant les user agents iPhone/iPod/Android/iOS, redirigeant vers des pages de jeux en ligne via
23.225.52.67:4466et23.225.48.20:4466. - Branche 2 – Chaîne d’exploit WebKit-to-kernel iOS : un loader base64 personnalisé (évitant
atobnatif) tire un second stage depuis l’infrastructure FUNNULL (union.macoms.la/jquery.min-3.6.8.js), qui enchaîne plusieurs redirections vers un iframe caché chargeant un exploit WebKit version-spécifique.
💥 Chaîne d’exploitation iOS
La chaîne weaponise deux CVE WebKit publiques et listées au catalogue KEV de la CISA :
- CVE-2025-31277 (iOS 18.4 à 18.5)
- CVE-2025-43529 (iOS 18.6+, exploitée dans des attaques ciblées selon Apple)
La chaîne couvre les appareils iPhone XS à iPhone 16 sous iOS 18.4 à 18.6.x, avec des tables d’offsets par chipset. Elle progresse en trois étapes :
- Renderer stage : corruption JavaScriptCore (object-address disclosure, fake objects, typed array corrompu) — overlap avec le kit d’exploit iOS DarkSword.
- GPU process pivot : primitive mémoire cross-process via IOSurface et mach messaging, forge de pointeurs PAC.
- Kernel escape : via le driver IOKit
AppleM2ScalerCSCDriver(selector 1, struct 432 octets, deux IOSurface IDs), corrigé dans iOS 26.1 (sibling du CVE-2026-43655).
🦠 Payload spyware
Le payload final collecte et exfiltre via HTTPS POST /upload (chiffrement AES) :
- Bases de données keychain, mots de passe Wi-Fi, SMS, carnet d’adresses, Photos, cookies, historique d’appels, localisation, bases de comptes
- Depuis le redéploiement du 2026-08-12 : vol de seeds et mnemonics de wallets crypto (Bitget, BitKeep, Bitpie, Phantom, Tonkeeper, Trust Wallet, OKX)
Clé AES hardcodée : 9_X1<yW,DC>M=<;5 — Channel identifier : 22c75b2ee026dbbf7001cfdc2bb47855
🏗️ Infrastructure et attribution
- Infrastructure FUNNULL (Triad Nexus, sanctionné par l’OFAC le 2025-05-29) :
yunray.ai,cdn1.ai,nqsaaskw.com— même famille de domaines que l’incident Polyfill.io 2024 (macoms.la). - Opérateurs des thèmes Packagist : groupe vietnamien (UTC+07:00, noms vietnamiens, localisation Hanoi), locataires FUNNULL.
- Kit d’exploit iOS : capacité commodity ou broker, overlap avec DarkSword (opérateurs russes et turcs selon GTIG), variante distincte.
- Opération gambling npm : tenant chinois indépendant (UTC+08:00) partageant la même infrastructure FUNNULL.
- 20 domaines d’exfiltration enregistrés en masse le 2026-06-02, tous actifs à la date de publication.
📋 Type d’article
Publication de recherche technique par l’équipe Threat Research de Socket, visant à documenter une campagne de supply chain active, divulguer les IOCs et les CVE exploitées, et alerter les opérateurs de sites OphimCMS/KKPhim.
🧠 TTPs et IOCs détectés
Acteurs de menace
- FUNNULL (cybercriminal) —
- DarkSword (unknown) —
TTP
- T1195.001 — Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
- T1608.001 — Stage Capabilities: Upload Malware (Resource Development)
- T1608.004 — Stage Capabilities: Drive-by Target (Resource Development)
- T1102 — Web Service (Command and Control)
- T1189 — Drive-by Compromise (Initial Access)
- T1203 — Exploitation for Client Execution (Execution)
- T1068 — Exploitation for Privilege Escalation (Privilege Escalation)
- T1027 — Obfuscated Files or Information (Defense Evasion)
- T1140 — Deobfuscate/Decode Files or Information (Defense Evasion)
- T1480 — Execution Guardrails (Defense Evasion)
- T1497 — Virtualization/Sandbox Evasion (Defense Evasion)
- T1552.001 — Unsecured Credentials: Credentials In Files (Credential Access)
- T1041 — Exfiltration Over C2 Channel (Exfiltration)
- T1071.001 — Application Layer Protocol: Web Protocols (Command and Control)
IOC
- IPv4 :
23.225.52.67— AbuseIPDB · VT · ThreatFox - IPv4 :
23.225.48.20— AbuseIPDB · VT · ThreatFox - Domaines :
union.macoms.la— VT · URLhaus · ThreatFox - Domaines :
cdn.data-2920.com— VT · URLhaus · ThreatFox - Domaines :
cdn.data-2919.com— VT · URLhaus · ThreatFox - Domaines :
www.cloudfareintcdn.com— VT · URLhaus · ThreatFox - Domaines :
yunray.ai— VT · URLhaus · ThreatFox - Domaines :
cdn1.ai— VT · URLhaus · ThreatFox - Domaines :
nqsaaskw.com— VT · URLhaus · ThreatFox - Domaines :
abfedgecanme.com— VT · URLhaus · ThreatFox - Domaines :
abfdns.com— VT · URLhaus · ThreatFox - Domaines :
galedns.com— VT · URLhaus · ThreatFox - Domaines :
im.ue8im.com— VT · URLhaus · ThreatFox - Domaines :
xl0ph4qz.vip— VT · URLhaus · ThreatFox - Domaines :
cre-ads.com— VT · URLhaus · ThreatFox - Domaines :
www.0liwevrhxdc3s2xk00.com— VT · URLhaus · ThreatFox - Domaines :
www.39rwcybep-20pwozhvdrzzy.net— VT · URLhaus · ThreatFox - Domaines :
www.5wg3w278e3oamlohmcinrkh.live— VT · URLhaus · ThreatFox - Domaines :
www.dlosdekr1u18msmov51.net— VT · URLhaus · ThreatFox - Domaines :
www.ex0x40vmi8qyccxq.net— VT · URLhaus · ThreatFox - Domaines :
www.ioa7xqmhiz26fv5e.info— VT · URLhaus · ThreatFox - Domaines :
www.isbo31w1o7xk3fztvmgpbv.app— VT · URLhaus · ThreatFox - Domaines :
www.jhflt6l0dwminsl494836rb.org— VT · URLhaus · ThreatFox - Domaines :
www.kp2-3ur6pe4r8i2hj5.com— VT · URLhaus · ThreatFox - Domaines :
www.ljot1cem6jhzfu53yb9aj3h.app— VT · URLhaus · ThreatFox - Domaines :
www.ncalb1rzb2rq5-3zdx1.app— VT · URLhaus · ThreatFox - Domaines :
www.ov86ayb0fe4ep2b92-645o.com— VT · URLhaus · ThreatFox - Domaines :
www.qdh71-y6j7vxgw046v4cvgga.live— VT · URLhaus · ThreatFox - Domaines :
www.sx3cjniwo1bmtqs0vlj-va2f.app— VT · URLhaus · ThreatFox - Domaines :
www.sx8vuz4smtdol7pg.com— VT · URLhaus · ThreatFox - Domaines :
www.t9ffxu6zhf915fadjv1.app— VT · URLhaus · ThreatFox - Domaines :
www.vutjsf0sd9sdqt2rkzvgzv9a.org— VT · URLhaus · ThreatFox - Domaines :
www.w4iunvbdvjof39q-3.net— VT · URLhaus · ThreatFox - Domaines :
www.xtpj2bzxip6iq7n3bnz.info— VT · URLhaus · ThreatFox - Domaines :
www.zfu4n4kxgmx32hsqg.cc— VT · URLhaus · ThreatFox - Domaines :
lsmzt.cc— VT · URLhaus · ThreatFox - Domaines :
xemphimlau.com— VT · URLhaus · ThreatFox - Domaines :
v7.kkphimplayer7.com— VT · URLhaus · ThreatFox - URLs :
http://23.225.52.67:4466/vip344.html— URLhaus - URLs :
http://23.225.48.20:4466/vip/index.php— URLhaus - URLs :
https://union.macoms.la/jquery.min-3.6.8.js— URLhaus - URLs :
https://cdn.data-2920.com/app.vue.js— URLhaus - URLs :
https://www.cloudfareintcdn.com/in-static.js— URLhaus - URLs :
https://www.cloudfareintcdn.com/wd-status.html— URLhaus - URLs :
https://im.ue8im.com/wg-2023440066/640-100-1.gif— URLhaus - SHA256 :
60b6771958cb7e553994ba6752f108575ba70e02d24affb51d8936a17eb0bf5e— VT · MalwareBazaar - SHA256 :
d9530e8cd79ac7b3d02b04e05426653afca7075fcf7424eec4d59c6e95745933— VT · MalwareBazaar - SHA256 :
92c7d246d2c163c076f783dcc19f87f5b9b9ac301b106b87a7aaea9346ce0052— VT · MalwareBazaar - SHA256 :
f2fdfddbc436acc24a654092f5205b2c5bd3208b126b2c2754ac63e7aea22298— VT · MalwareBazaar - SHA256 :
9d6b58886189c0e23f706c32d3d8dda97b0b6d927ece6de07270813f070295b5— VT · MalwareBazaar - SHA256 :
de539a63cbe27bbd4a7db30fc796cd6dc5309c02ef5e60a3c5cf0835e5601283— VT · MalwareBazaar - Emails :
clemenciajohn74@gmail.com - Emails :
dev.cuongnguyen@gmail.com - Emails :
nguyenhai.tran.009@gmail.com - Emails :
xuxuthoi01@gmail.com - Emails :
tuwibu2021@gmail.com - CVEs :
CVE-2025-31277— NVD · CIRCL - CVEs :
CVE-2025-43529— NVD · CIRCL - CVEs :
CVE-2026-43655— NVD · CIRCL - Fichiers :
start-view.html - Fichiers :
a4tt4g37f36gdd7q7kdc.js - Fichiers :
a84snnb6pknt3aflt01r.js - Fichiers :
921w48jmeqvt3ygn0wwx.js - Fichiers :
4ap5xpu18z70wwslqybu.js - Fichiers :
qljbd9a1h4a83gw8lxcj.js - Fichiers :
98jgbibyeep2qfkvcq.html - Fichiers :
pf2zdl2b4i4cxggjg9s7.js - Fichiers :
sejpbqlu090u7lz0z6ax.js - Fichiers :
indexbottom.js - Fichiers :
topinfo.js - Fichiers :
functions.js - Fichiers :
jquery.core.min.js - Fichiers :
js.cookie.js - Fichiers :
phimv2.3.js - Fichiers :
tj.js
⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 1 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
- DarkSword iOS exploit kit (other)
- iOS keychain crypto-wallet stealer (stealer)
- FUNNULL spyware payload (rat)
- MPAd loader (loader)
- CryptoJS (JQMP namespace) (tool)
🟢 Indice de vérification factuelle : 100/100 (haute)
- ✅ socket.dev — source reconnue (liste interne) (20pts)
- ✅ 25493 chars — texte complet (fulltext extrait) (15pts)
- ✅ 75 IOCs dont des hashes (15pts)
- ✅ 6/11 IOCs confirmés (AbuseIPDB, MalwareBazaar, ThreatFox, URLhaus, VirusTotal) (15pts)
- ✅ 14 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ✅ acteur(s) identifié(s) : FUNNULL, DarkSword (5pts)
- ✅ 3/3 CVE(s) confirmée(s) (CIRCL) (5pts)
IOCs confirmés externellement :
23.225.48.20(ip) → VT (7/91 détections)d9530e8cd79ac7b3…(sha256) → VT (7/76 détections)92c7d246d2c163c0…(sha256) → VT (13/76 détections)union.macoms.la(domain) → VT (15/91 détections)cdn.data-2920.com(domain) → VT (5/91 détections)
🔗 Source originale : https://socket.dev/blog/packagist-themes-ios-spyware