L’exécution de code à distance, ou RCE (Remote Code Execution), désigne une catégorie de faille qui permet à un attaquant de faire exécuter des instructions arbitraires directement sur le serveur hébergeant un site WordPress, sans y avoir d’accès légitime au préalable. C’est le niveau de gravité le plus élevé qu’une vulnérabilité puisse atteindre.
Comment une faille RCE apparaît dans WordPress
- Upload de fichier non restreint : un plugin qui accepte un fichier envoyé par un visiteur sans vérifier réellement son type, permettant de déposer un script PHP exécutable
- Désérialisation non sécurisée : traitement de données utilisateur avec des fonctions PHP comme
unserialize()sans validation, pouvant déclencher l’exécution de code via un objet manipulé - Injection de commande : un paramètre transmis sans filtrage à une fonction système du serveur
- Combinaison de failles mineures : une faille d’upload associée à une faille de traversée de répertoire peut, ensemble, aboutir à un RCE complet
Pourquoi un RCE est la faille la plus critique
Contrairement à une injection SQL qui cible la base de données, un RCE donne un contrôle total du serveur : lecture et modification de tous les fichiers, installation de malware ou de backdoor, voire rebond vers d’autres sites hébergés sur le même serveur mutualisé.
Comment se protéger d’une faille RCE
- Mettre à jour immédiatement dès qu’un correctif de sécurité est publié pour un plugin – les RCE font partie des failles les plus rapidement exploitées après divulgation publique
- Restreindre les permissions d’exécution sur les répertoires d’upload (empêcher l’exécution de PHP dans
wp-content/uploads) - Activer un pare-feu applicatif (WAF) capable de bloquer les tentatives d’upload ou d’injection de commande avant qu’elles n’atteignent le code vulnérable
- Auditer les plugins tiers, en particulier ceux qui gèrent des uploads ou des imports de données