WooCommerce Wholesale Lead Capture : une faille corrigée en février, plus de 100 000 attaques depuis, une porte dérobée en une requête
Publié le · 7 min de lecture· Par Benjamin Bueno

Sommaire
En bref : l'extension premium WooCommerce Wholesale Lead Capture, qui gère les formulaires d'inscription des clients grossistes, est vulnérable jusqu'à la version 2.0.3.1 à un envoi de fichier arbitraire sans authentification (CVE-2026-27540, CVSS 9.8). Le correctif 2.0.3.2 date du 20 février 2026, mais Wordfence a bloqué plus de 100 000 tentatives d'exploitation depuis, avec des pics en juin, en juillet et le 30 août : les attaquants déposent une porte dérobée shell.php en une seule requête. Si votre boutique utilise cette extension, mettez-la à jour, cherchez des fichiers PHP dans wp-content/uploads et l'action wwlc_file_upload_handler dans vos journaux.
Une faille corrigée en février, exploitée en masse tout l'été
Le 14 septembre 2026, Wordfence a publié ses données d'attaque sur CVE-2026-27540, une faille de WooCommerce Wholesale Lead Capture, extension premium estimée à 6 000 installations actives. La vulnérabilité a été rendue publique le 20 février 2026, ajoutée à la base Wordfence Intelligence le 25 février, et son correctif, la version 2.0.3.2, est disponible depuis février. Malgré cela, le pare-feu de Wordfence a bloqué plus de 100 000 tentatives d'exploitation, concentrées entre le 4 et le 17 juin, le 1er juillet et le 30 août 2026.
Ce décalage de sept mois entre correctif et vagues d'attaques est le cas d'école de l'extension premium oubliée. Une extension achetée hors du dépôt WordPress.org ne se met à jour que si sa licence est active et sa clé renseignée sur le site ; quand la licence expire, la mise à jour cesse d'apparaître, et l'extension continue de fonctionner sans que personne ne remarque qu'elle prend du retard. Les attaquants, eux, lisent les bases de vulnérabilités et testent chaque site WooCommerce à la recherche du point d'entrée.
| Élément | Détail |
|---|---|
| Extension | Wholesale Lead Capture Plugin for WooCommerce (premium, éditeur Rymera Web Co d'après la fiche CVE), environ 6 000 installations |
| Référence | CVE-2026-27540, CVSS 9.8 (critique) |
| Versions vulnérables | 2.0.3.1 et antérieures |
| Version corrigée | 2.0.3.2 (20 février 2026) |
| Accès requis | Aucun |
| Chercheur | Teemu Saarentaus |
| Exploitation | Plus de 100 000 tentatives bloquées par Wordfence ; pics du 4 au 17 juin, le 1er juillet et le 30 août 2026 |
| Règle de pare-feu Wordfence | 27 février 2026 (Premium, Care, Response), 29 mars 2026 (gratuit) |
Le mécanisme : une liste d'extensions autorisées fournie par l'attaquant
L'extension propose un formulaire d'inscription pour les grossistes, avec des champs de fichier (justificatifs, extraits Kbis, etc.). Ces envois sont traités par l'action AJAX wwlc_file_upload_handler, accessible aux visiteurs non connectés. Le code vérifie bien l'extension du fichier envoyé contre une liste de types autorisés. Le problème est l'origine de cette liste : elle est lue dans le paramètre file_settings de la requête, un JSON que l'attaquant rédige lui-même, au lieu de la configuration du formulaire côté serveur.
Il suffit donc d'envoyer {"allowed_file_types": ["php", "jpg"], "max_allowed_file_size": 99999999} pour que le fichier .php passe le contrôle. Le second test, sur le type MIME déclaré, est tout aussi contournable puisque la valeur vient aussi du client, et l'appel à wp_handle_upload() est fait avec test_type désactivé, ce qui neutralise la vérification de WordPress. Le fichier est renommé avec un horodatage (shell-1725000000.php, par exemple) et écrit dans le dossier d'envoi temporaire de l'extension, sous wp-content/uploads.
Envoi de fichier arbitraire
Famille de vulnérabilités où une application accepte un fichier sans vérifier correctement son type, son extension ou sa destination. Quand le fichier est du PHP écrit dans un dossier servi par le serveur web, l'attaquant obtient une exécution de code en appelant simplement son URL. C'est l'une des failles les plus exploitées sur WordPress, parce que la charge utile est un fichier prêt à l'emploi et que l'attaque tient en une requête. Voir notre article sur les vulnérabilités d'envoi de fichiers sur WordPress.
Ce que déposent les attaquants
Dans les requêtes observées par Wordfence, le fichier envoyé s'appelle le plus souvent shell.php. Son contenu est minimal : il affiche un marqueur (sohai), puis, si on l'appelle avec le bon paramètre, il renvoie les informations du serveur (php_uname()) et affiche un formulaire d'envoi de fichier qui copie tout ce qu'on lui soumet sur le disque. C'est un « dropper » de première étape : une fois en place, il sert à déposer de vraies portes dérobées, des pages de phishing, du spam ou des scripts de redirection, comme ceux que nous décrivons dans notre article sur les boutiques WooCommerce piratées.
Les dix adresses les plus actives citées par Wordfence totalisent à elles seules plus de 94 000 requêtes bloquées, dont 92.241.13.213 (plus de 24 900), 31.59.129.150 (plus de 24 000) et 2a0f:85c1:840:5389::1 (plus de 16 000). Ce sont des campagnes automatisées, qui visent des listes de sites WooCommerce sans savoir à l'avance si l'extension y est installée.
Que vérifier sur votre boutique
Mettre à jour, ou retirer l'extension
wp plugin get woocommerce-wholesale-lead-capture --field=version
Toute version inférieure à 2.0.3.2 doit être mise à jour. Si la licence a expiré et que la mise à jour n'apparaît pas, renouvelez-la ou téléchargez la version à jour depuis votre compte chez l'éditeur ; si vous n'utilisez plus l'inscription grossiste, désinstallez l'extension plutôt que de la laisser désactivée, car une extension désactivée peut être réactivée par un attaquant qui a déjà un pied dans le site. Ce point vaut pour toutes les extensions premium d'une boutique : faites l'inventaire des licences avec les mises à jour, c'est l'un des contrôles de notre guide de sécurité WooCommerce.
Chercher la porte dérobée
Une exploitation réussie laisse un fichier PHP dans l'arborescence d'uploads. Cherchez tout fichier .php dans ce dossier, et en particulier les noms se terminant par un horodatage :
find wp-content/uploads -type f -name "*.php"
find wp-content/uploads -type f -name "shell-*.php"
grep -rl "sohai" wp-content/uploads/ 2>/dev/null
Un fichier PHP dans uploads est anormal en soi, quel que soit son nom : ce dossier ne contient que des médias. Ne vous fiez pas au nom, les attaquants en changent.
Lire les journaux d'accès
La requête d'attaque est un POST vers /wp-admin/admin-ajax.php avec action=wwlc_file_upload_handler. Le paramètre est dans le corps de la requête, pas dans l'URL, donc invisible dans un journal d'accès classique ; cherchez plutôt les POST vers admin-ajax.php depuis les adresses citées par Wordfence, et tout GET vers un fichier .php sous uploads, qui trahit l'appel de la porte dérobée après son dépôt :
grep -E "92\.241\.13\.213|31\.59\.129\.150|92\.241\.13\.140|23\.137\.105\.214|23\.180\.120\.140|104\.194\.9\.138|187\.75\.114\.36|114\.10\.43\.203|37\.114\.144\.209" /var/log/nginx/access.log*
grep -E "GET /wp-content/uploads/[^ ]*\.php" /var/log/nginx/access.log*
Un journal applicatif ou un pare-feu qui enregistre les paramètres POST permet de chercher directement wwlc_file_upload_handler. Notre guide pour analyser les journaux d'un piratage détaille la lecture des deux types de journaux. L'absence de trace ne prouve rien si les journaux ne remontent pas jusqu'en juin.
Si un fichier a été déposé
Le site est compromis, et depuis juin au plus tôt : l'attaquant a eu tout l'été pour installer d'autres accès. Supprimer shell.php ne suffit pas. Il faut chercher les autres portes dérobées, les comptes administrateurs ajoutés, le code injecté dans les fichiers de thème et d'extensions, et, s'agissant d'une boutique, vérifier qu'aucun script de vol de cartes n'a été ajouté aux pages de paiement. Suivez notre guide complet de nettoyage, ou confiez-nous la suppression du virus et le nettoyage : diagnostic gratuit sous 12 heures, intervention à prix fixe annoncé avant de commencer.
Boutique en ligne : pensez aux obligations
Une porte dérobée sur une boutique donne accès aux commandes, aux adresses et parfois aux données de paiement selon le mode d'encaissement. Datez l'intrusion avec les journaux, évaluez les données exposées et, le cas échéant, notifiez la CNIL sous 72 heures : notre article sur le piratage WordPress et la notification à la CNIL décrit la procédure.
Trois mesures pour la prochaine faille d'envoi de fichier
- Bloquer l'exécution de PHP dans uploads. Avec une règle serveur qui refuse d'exécuter du PHP sous
wp-content/uploads, le fichier déposé reste inerte : la faille existe encore, mais elle ne donne plus d'exécution de code. C'est la mesure la plus rentable contre toute cette famille de failles ; voir bloquer l'exécution PHP dans uploads. - Inventorier les extensions premium et leurs licences. Une licence expirée est une mise à jour de sécurité qui n'arrivera jamais. Listez les extensions payantes, leurs dates d'expiration et la version installée, et comparez au moins une fois par mois avec la version publiée par l'éditeur.
- Un pare-feu applicatif à règles. Les utilisateurs de Wordfence Premium étaient protégés dès le 27 février, ceux de la version gratuite depuis le 29 mars. Pour une boutique qui vit de ses commandes, ce délai de trente jours et les jours sans protection avant la mise à jour justifient un pare-feu payant ou un contrat de maintenance qui applique les correctifs le jour même.
Cette campagne n'est pas isolée : le même mois, Wordfence a documenté des exploitations massives de failles d'envoi de fichier dans Super Forms (plus de 250 000 tentatives) et dans Elementor Pro (plus de 190 000). Les formulaires avec champ de fichier sont la cible de l'année.
Sources
- Wordfence, « Attackers Actively Exploiting Critical Vulnerability in WooCommerce Wholesale Lead Capture Plugin », 14 septembre 2026, wordfence.com
- BleepingComputer, Bill Toulas, « Hackers target WordPress sites via third-party WooCommerce plugin », 15 septembre 2026, bleepingcomputer.com
- CVE Program, fiche CVE-2026-27540, cve.org
Votre site est touché ?
Nous intervenons sur les sites WordPress piratés, nettoyage et sécurisation compris. Décrivez votre situation, nous vous répondons.
À lire aussi

Failles WordPress septembre 2026 : 839 vulnérabilités en trois semaines, trois campagnes d'exploitation et onze correctifs dans le cœur
839 failles WordPress du 24 août au 13 septembre 2026, 49 critiques, trois exploitées en masse, WordPress 7.1.1, Brevo. Tableau et plan d'action.
· 11 min de lecture

All-in-One WP Migration et Gravity Forms : deux failles sans authentification corrigées en silence, 3,25 millions de sites en retard
CVE-2026-19949 (All-in-One WP Migration, 5 M de sites) et CVE-2026-19513 (Gravity Forms) corrigées le 20 août sans le dire. Versions, vecteurs, contrôles.
· 8 min de lecture

Elementor Pro : la faille d'envoi de fichier CVE-2026-32475 exploitée le jour de sa publication, 190 000 attaques bloquées
Elementor Pro jusqu'en 4.2.1 : un formulaire avec champ de fichier facultatif suffit à déposer un PHP (CVE-2026-32475). Correctif 4.2.2 et vérifications.
· 6 min de lecture

Super Forms : une faille d'écriture de fichier exploitée plus de 250 000 fois, la porte dérobée « Mushr00w » à chercher sur votre site
Super Forms jusqu'en 6.3.313 : écriture de fichier PHP sans compte, 250 000 attaques, porte dérobée Mushr00w_upl.php. Correctif 6.3.314 et vérifications.
· 7 min de lecture