Ce qui se passe
Le chercheur Kush Pandya, de Socket, a identifié 13 paquets de thèmes Composer publiés sur Packagist et conçus pour injecter du JavaScript dans les sites qui les installent — des plateformes vietnamiennes de streaming sous OphimCMS et KKPhim. La campagne prolonge celle documentée en mars 2026, qui reposait sur six thèmes OphimCMS déjà servis depuis l'infrastructure Funnull.
Les paquets, répartis sur cinq espaces de nommage :
vsmov/theme-dy vsmov/theme-rrdyw vsmov/theme-motchill
vsmov/theme-vsmov vsphim/theme-heovl vsphim/theme-thempho
haiau009/kkphim-legend haiau009/kkphim-motchill
chilltvcms/theme-legend
ophimcms/theme-dy ophimcms/theme-motchill ophimcms/theme-pcc
ophimcms/theme-rrdywLes mêmes namespaces publient d'autres thèmes sans charge active au moment de l'analyse — mais configurés pour qu'un champ « Custom JS », rendu sur chaque page, puisse l'activer.
Comment la chaîne se déroule
Les deux failles WebKit sont CVE-2025-31277 (corrigée en iOS 18.6) et
CVE-2025-43529 (corrigée en 18.7.3 et 26.2). Apple n'a pas attribué de CVE à
l'échappement noyau, corrigé en iOS et macOS 26.1 avant même le signalement ;
Socket suppose CVE-2025-43398, CVE-2025-43510 ou CVE-2025-43520. La progression
de l'exploitation est signalée à cloudfareintcdn[.]com/wd-status.html.
Depuis le 12 août 2026, la charge finale ajoute un voleur de phrases de récupération, interrogeant le trousseau pour Bitget, BitKeep, Bitpie, Phantom, Tonkeeper, Trust Wallet et OKX. Les cibles réelles sont les iPhone XS à 16 restés en iOS 18.4 à 18.6.x.
Ce que ça change pour un développeur PHP
Un thème n'est pas un jeu de feuilles de style : c'est du code qui s'exécute chez vos visiteurs. Socket insiste sur un point qu'on oublie — les exploitants de ces sites sont aussi des victimes : ils ont livré le thème sans le savoir et servi la charge à leurs propres utilisateurs.
À retenir
- Grepper les treize noms ci-dessus dans
composer.lock, pas seulement danscomposer.json: une dépendance transitive n'apparaît que dans le premier. - Si l'un est présent : le retirer, faire tourner les identifiants, auditer les scripts jQuery et de thème réellement servis.
- Un champ « Custom JS » stocké en base et rendu sur chaque page est un vecteur à part entière, même sur un thème aujourd'hui propre.
Source : The Hacker News