WordPress · 11 min · publié le 25 décembre 2024 · mis à jour le 11 décembre 2025

Plugin WordPress vulnérable : la porte d'entrée n°1

Formulaire, constructeur, galerie, SEO : une extension installée puis oubliée. C'est la porte n°1. Désactiver après l'attaque ne retire pas le code déjà déposé dans uploads ou en mu-plugin.

Réponse directe

Formulaire, constructeur, galerie, SEO : une extension installée puis oubliée. Désactiver après l'attaque ne retire pas le code déjà déposé ailleurs.

plugin wordpress vulnérable faille extension wordpress plugin oublié piratage

Pourquoi les bots connaissent votre plugin

Les CVE et les changelogs wp.org sont publics. Des scanners testent des millions de sites dès qu'un PoC sort. Votre Contact Form, votre Revolution Slider de 2018, votre plugin de statistiques : ils n'ont pas besoin de vous connaître.

WordPress n'est pas « fragile » : il est visible. La porte est l'extension non mise à jour, ou celle hors dépôt jamais patchée. Le cœur à jour avec un plugin à la traîne, c'est le cas le plus banal. Guide.

Listez chaque extension avec sa date de dernière mise à jour wp.org et son dossier encore présent même désactivé. Les bots frappent les chemins disque, pas la case « activé ». Un `upload.php` orphelin dans un vieux plugin reste joignable. Les must-use n'apparaissent pas dans l'écran extensions : ouvrez `wp-content/mu-plugins/`. Cet inventaire de vingt minutes oriente plus qu'un énième scan.

Installé, désactivé, encore sur le disque

Désactiver retire les hooks. Le dossier `wp-content/plugins/ancien-truc/` reste appelable si un fichier PHP est directement joignable (pas d'ABSPATH, un `upload.php` orphelin). Les bots frappent ces chemins. Désinstallez, ou au minimum retirez le dossier après copie.

Les must-use ne se « désactivent » pas dans l'écran extensions. Allez dans `mu-plugins`.

Add-ons et « extensions de l'extension »

Elementor est à jour, l'add-on de 2019 non. CF7 est à jour, l'add-on d'upload de fichiers non. WooCommerce officiel, le module de paiement « pas cher » non. Cherchez la longue traîne, pas le logo du plugin star. Elementor, CF7, Woo.

Ce que la faille a laissé derrière

Un RCE ou un upload : `uploads/2024/xx/x.php`, parfois `.php.jpg`. Un admin créé. Un cron. Un mu-plugin. Un include dans `wp-config`. Fermer le plugin sans cette chasse, c'est refermer la porte d'entrée et laisser les clés sous le paillasson. Backdoor.

Un File Manager exposé : partez du principe que des fichiers ont été déposés, même si vous « n'avez rien vu ». File Manager.

Un RCE ou un upload : `uploads/2024/xx/x.php`, parfois `.php.jpg`. Un admin créé. Un cron. Un mu-plugin. Un include wp-config. Fermer le plugin sans cette chasse, c'est refermer la porte et laisser les clés sous le paillasson. Backdoor PHP.

  • PHP dans uploads, doubles extensions.
  • Fichier dans mu-plugins.
  • User administrateur daté.
  • Ligne include dans wp-config.

Identifier le coupable sans certitude magique

Dates : access.log sur `wp-admin/admin-ajax.php`, `wp-json/`, un endpoint du plugin. CVE récente + plugin présent + date de fichiers = hypothèse forte, rarement une preuve juridique. Suffisant pour prioriser.

Wordfence donne parfois le fichier « first seen ». Ce n'est pas toujours l'entrée, c'est le symptôme. Wordfence limites.

Dates access.log sur admin-ajax, wp-json, un endpoint du plugin. CVE récente + plugin présent + date de fichiers = hypothèse forte. Wordfence « first seen » est souvent le symptôme, pas l'entrée.

Remplacer n'est pas nettoyer

Installer la version à jour du plugin, ou un concurrent, après l'incident : utile pour la suite. Ça n'efface pas `radio.php`. Ordre : copie, chasse, puis remplacement / MAJ. Supprimer malware.

Installer la version à jour ou un concurrent après l'incident : utile pour la suite. Ça n'efface pas `radio.php`. Ordre : copie, chasse, puis remplacement. Supprimer malware.

Moins de surface après

Une extension = une raison. Pas trois sliders. Pas de File Manager permanent. Pas de phpMyAdmin plugin. Mises à jour auto pour les petits plugins de confiance, revue humaine pour Woo / Elementor / paiement.

PHP supporté, WP à jour une fois le site propre. PHP obsolète.

Cas fréquents : forms, builders, file tools

Formulaires avec upload : coupez l'upload si vous n'en avez pas besoin. Builders : add-ons. Outils fichiers : usage puis désinstallation le jour même. Duplicator : `installer.php` dehors. Duplicator.

Page cas WordPress piraté. Aide : créer un espace.

Moins de surface ensuite : une extension = une raison, pas de File Manager permanent, PHP supporté, WP à jour une fois le site propre. Page cas WordPress piraté. Aide : créer un espace.

WAF, mises à jour auto, et ce qu'on ne garde pas

Un WAF (Wordfence, hébergeur) peut virtual-patcher quelques jours. Ce n'est pas une raison de garder l'extension abandonnée « encore un mois ». Les bots n'attendent pas votre devis. Mises à jour auto pour les petits plugins de confiance ; revue humaine pour Woo, Elementor, paiement.

Moins de surface : pas trois sliders, pas de phpMyAdmin plugin, pas de File Manager permanent. Un plugin « nulled » même à jour : le canal d'install est la porte. Thème nulled.

Si le plugin a exposé des uploads d'identité ou des commandes, le constat décide d'une information clients. Pas automatique pour un défacement. Créer un espace.

Le lendemain d'une CVE publique

Le jour où WPScan publie, les bots tournent déjà. Mettez à jour ou retirez le dossier, même désactivé. Puis dates de fichiers : si quelque chose a été touché avant votre MAJ, la porte a servi. Chasse uploads / mu-plugins / users, pas seulement le changelog.

Wordfence Premium n'aurait pas forcément empêché un mot de passe panel. Ce n'est pas un substitut. Inventaire trimestriel des extensions abandonnées. Par où commencer. Créer un espace.

Questions fréquentes

Le plugin vulnérable est indispensable. Je le garde ?

+
Mettez-le à jour ou forkez si vous savez. S'il n'y a plus de patch, remplacez la fonction. Le garder « encore un mois » est le mois que les bots utilisent. Mettez à jour ou remplacez. Garder « encore un mois » est le mois que les bots utilisent.

Wordfence Premium aurait empêché l'entrée ?

+
Parfois un WAF virtual patch, pas toujours, pas contre un mot de passe panel. Ce n'est pas un substitut de MAJ. Parfois un WAF virtual patch, pas contre un mot de passe panel. Pas un substitut de MAJ.

Je dois prévenir mes clients à cause d'un plugin ?

+
Si le plugin a exposé des données (uploads de pièces d'identité, commandes), le constat décide. Pas automatiquement pour un défacement. Si des données ont été exposées, le constat décide. Pas automatique pour un défacement.

Un plugin « nulled » premium, même à jour ?

+
Le canal d'install est déjà la porte. Traitez-le comme un thème nulled. Le canal d'install est déjà la porte. Traitez comme un thème nulled.

Comment savoir la date de la faille ?

+
Changelog wp.org, NVD, WPScan. Croisez avec les dates de fichiers. Sans logs, vous aurez une fenêtre, pas une minute. Changelog, NVD, WPScan, croisés aux dates de fichiers. Fenêtre, pas une minute.
À lire ensuite
Par où commencer Thème nulled File Manager Contact Form 7 Guide WordPress Déclarer mon site