Faille Funnel Builder WooCommerce : 40 000 boutiques exposées au vol de données de paiement
Célestine Rochefour
40 000 boutiques WooCommerce compromises par une faille critique non patchée
Une vulnérabilitézero-day dans le plugin Funnel Builder pour WordPress est actuellement exploitée par des attaquants pour injecter du code JavaScript malveillant dans les pages de paiement WooCommerce. Cette faille permet le vol de données bancaires de clients via une technique de skimming particulièrement difficile à détecter.
Le plugin, utilisé par plus de 40 000 boutiques en ligne, présente une brèche qui permet à des acteurs malveillants d’injecter des scripts arbitraires sans authentification. FunnelKit, l’éditeur du plugin, a publié un correctif en version 3.15.0.3, mais des centaines de sites restent vulnérables à ce jour.
Comprendre le mécanisme de la faille Funnel Builder
Une absence de contrôle d’accès aux endpoints internes
La vulnérabilité réside dans une endpoint de paiement publiquement exposée par le plugin Funnel Builder. Cette interface permet aux requêtes entrantes de sélectionner le type de méthode interne à exécuter. Problème majeur : les versions antérieures à 3.15.0.3 n’effectuaient aucune vérification des permissions de l’appelant ni de limitation des méthodes autorisées.
Concrètement, un attaquant peut envoyer une requête non authentifiée capable d’atteindre une méthode interne non spécifiée qui écrit directement des données contrôlées par l’attaquant dans les paramètres globaux du plugin. Le code ainsi injecté est ensuite exécuté sur chaque page de paiement du site WooCommerce concerné.
« Cette conception permet à quiconque d’accéder à des fonctions internes critiques sans même disposer d’un compte sur le site. C’est une erreur architecturelle grave pour un plugin处理 des transactions financières. » - analyse Sansec
L’injection via de faux scripts Google Tag Manager
La technique d’exploitation observée par Sansec repose sur l’injection de faux scripts déguisés en Google Tag Manager. Les attaquants plantent du code dans le paramètre « External Scripts » du plugin, qui apparaît comme un tag analytics ordinaire parmi les véritables balises du site.
Ce camouflage exploite un biais cognitif bien identifié par les équipes de sécurité (biais cognitif et ingénierie sociale, guide complet) : les examinateurs ont tendance à ignorer下意识ellement tout ce qui ressemble à un tag de suivi familier comme Google Analytics ou GTM. Cette approche constitue un pattern Magecart récurrent dans les campagnes de skimming de paiement.
Communication avec un serveur de commande via WebSocket
Dans au moins un cas documenté, Sansec a observé une charge utile se faisant passer pour un chargeur Google Tag Manager. Ce script établit une connexion WebSocket vers un serveur de commande et de contrôle (C2) hébergé sur le domaine « wss://protect-wss[.]com/ws ». Cette connexion permet au serveur distant d’envoyer dynamiquement un skimmer adapté à la vitrine de la victime.
Schéma d'attaque :
1. Requête non authentifiée → endpoint Funnel Builder
2. Écriture de données arbitraires dans les paramètres globaux
3. Injection d'un faux script GTM dans External Scripts
4. Connexion WebSocket au C2 (wss://protect-wss[.]com/ws)
5. Réception du skimmer adapté à la boutique
6. Exfiltration des données de paiement lors du checkout
Données ciblées et impact sur les victimes
Nature des informations volées
L’objectif final de cette campagne est l’exfiltration de données financières sensibles :
- Numéros de cartes bancaires (numéros de carte, dates d’expiration)
- Codes CVV/CVC à trois ou quatre chiffres
- Adresses de facturation complètes
- Autres informations personnelles saisies lors du processus de paiement
Ces données permettent aux attaquants de revendre les informations sur les marchés noirs du dark web ou de les utiliser pour des fraudes à la carte bancaire.
Impact sur les e-commerçants concernés
Pour les propriétaires de boutiques WooCommerce utilisant Funnel Builder, les conséquences sont multiples :
| Conséquence | Description |
|---|---|
| Pertes financières | Frais de remplacement de cartes pour les clients affectés, pertes de revenus |
| Atteinte à la réputation | Perte de confiance des clients, avis négatifs, impact sur le référencement |
| Sanctions RGPD | Risques de lourdes amendes en cas de manquement à l’obligation de sécurité |
| Coûts de remédiation | Investigation forensique, nettoyage du site, communication de crise et services de dépannage |
Signalement Magecart et évolution des techniques de skimming
Un pattern récurrent mais toujours efficace
Sansec souligne que le déguisement des skimmers en code Google Analytics ou Google Tag Manager constitue un pattern Magecart éprouvé. Cette technique tire parti de la familiarité des administrateurs systèmes avec ces outils de tracking : un script familier attire moins l’attention qu’un code inconnu lors des audits de sécurité.
Cette approche montre une évolution notable par rapport aux premiers skimmers, souvent des scripts grossièrement masqués. Les attaquants actuels investissent dans des mécanismes de dissimulation sophistiqués, incluant des connexions C2 dynamique et des charges utiles adaptatives.
Contexte : campagne Joomla avec du code PHP obfusqué
Cette découverte intervient quelques semaines après que une autre faille critique ait exposé plus de 115 000 sites WordPress, ainsi qu’une campagne ciblant les sites Joomla. Ces derniers sont rétrogradés avec du code PHP lourdement obfusqué permettant de contacter des serveurs C2 contrôlés par les attaquants, de recevoir et traiter des instructions, puis de servir du contenu spam aux visiteurs et aux moteurs de recherche.
« Le script agit comme un chargeur distant. Il contacte un serveur externe, envoie des informations sur le site infecté et attend des instructions. La réponse du serveur distant détermine le contenu que le site compromis doit servir. » - Puja Srivastava, chercheuse en sécurité
Cette approche permet aux attaquants de modifier le comportement du site compromis à tout moment sans modifier à nouveau les fichiers locaux, rendant la détection et la remédiation particulièrement complexes.
Mesures correctives et bonnes pratiques de sécurité
Action immédiate : mise à jour vers la version 3.15.0.3
La première mesure à prendre impérativement est la mise à jour du plugin Funnel Builder vers la version 3.15.0.3 ou ultérieure. FunnelKit a publié ce correctif en réponse à la vulnérabilité signalée. Cette mise à jour corrige le défaut de contrôle d’accès aux endpoints internes et empêche l’exploitation par des acteurs non authentifiés.
Audit des paramètres External Scripts
Même après la mise à jour, il est essentiel de vérifier manuellement les paramètres du plugin :
- Accédez à Settings > Checkout > External Scripts dans l’interface d’administration WordPress
- Examinez chaque script listé et identifiez son origine
- Supprimez tout script non autorisé ou non reconnu
- Vérifiez particulièrement les scripts se réclamant de Google Analytics, GTM ou tout autre service de tracking
Cette vérification doit être répétée régulièrement, car des attaquants pourraient avoir implanté des scripts avant la mise à jour.
Protocole de réponse à incident
Si vous constatez des signes d’exploitation (scripts inconnus, connexions suspectes), suivez cette procédure :
- Isolez immédiatement le site en le mettant en mode maintenance
- Identifiez tous les scripts inconnus et supprimez-les
- Analysez les logs serveur pour déterminer la date et la méthode d’injection
- Informez vos clients si des données ont potentiellement été compromises
- Documentez l’incident en vue d’éventuelles obligations réglementaires RGPD
- Renforcez les mesures de sécurité avant la remise en ligne
Prévention : sécuriser votre boutique WooCommerce à long terme
Politique de mise à jour rigoureuse
La leçon principale de cet incident est l’importance d’une politique de mise à jour proactive. Voici un cadre recommandé pour les boutiques WooCommerce :
- Plugins critiques (paiement, checkout, sécurité) : mise à jour dans les 24-48 heures après publication
- Plugins secondaires : mise à jour hebdomadaire
- Thèmes : mise à jour mensuelle minimum
- WordPress core : mise à jour immédiate dès publication
Solutions de monitoring dédiées au e-commerce
Envisagez le déploiement de solutions de monitoring spécifiques au e-commerce :
- Sansec ou services similaires pour la détection de skimmers
- Plugins de sécurité WooCommerce avec analyse comportementale
- Monitoring d’intégrité des fichiers avec alertes en temps réel
- Audit régulier du code des plugins tiers
Sécurisation des endpoints et des API
Au-delà du plugin Funnel Builder, vérifiez régulièrement :
- L’exposition des endpoints REST API WordPress
- Les permissions des rôles utilisateurs
- Les options d’enregistrement de scripts tiers
- La journalisation des requêtes entrantes
Conclusion : la vigilance est le meilleur rempart contre le skimming
La faille Funnel Builder illustre une réalité persistante dans l’écosystème WordPress : les plugins de e-commerce constituent des cibles de choix pour les attaquants, car ils manipulent par nature des données financières sensibles. La combinaison d’un endpoint publiquement exposé, d’une absence de vérification des permissions et d’une technique de camouflage astucieuse a permis une campagne d’exploitation active pendant plusieurs semaines.
Les propriétaires de boutiques WooCommerce utilisant Funnel Builder doivent agir sans délai : mise à jour vers la version 3.15.0.3, audit des scripts externes, et surveillance accrue des transactions. Au-delà de cette vulnérabilité spécifique, l’adoption d’une politique de sécurité proactive - mise à jour régulière, monitoring continu, audit périodique - représente la seule approche durable contre les techniques de skimming en constante évolution.
Face à des attaquants qui investissent dans des mécanismes de dissimulation sophistiqués, la détection précoce et la réponse rapide constituent désormais des compétences indispensable pour tout e-commerçant traitant des données de paiement en ligne.