Composants & architecture WordPress

XML-RPC

Julien THÉRIN

XML-RPC est un protocole hérité de WordPress qui permet la publication à distance, mais son point d'entrée xmlrpc.php est aussi une cible fréquente d'attaques par force brute amplifiées.

XML-RPC est un protocole permettant à des applications externes d’interagir avec WordPress à distance : publication d’articles depuis une application mobile, synchronisation avec des services tiers comme Jetpack, ou gestion des pingbacks et trackbacks entre sites. Le point d’entrée technique est le fichier xmlrpc.php, présent par défaut sur toute installation WordPress.

Pourquoi xmlrpc.php est une cible fréquente

Ce protocole présente une particularité exploitée par les attaquants : sa méthode system.multicall permet de regrouper de nombreuses requêtes d’authentification en un seul appel HTTP. Un attaquant peut ainsi tester des centaines de combinaisons de mots de passe en quelques requêtes seulement, rendant une attaque par force brute classique bien plus rapide et plus difficile à détecter dans les journaux d’accès qu’une attaque directe sur wp-login.php.

Le système de pingback peut également être détourné pour amplifier une attaque DDoS vers un site tiers, en utilisant votre serveur comme relais involontaire.

Faut-il désactiver XML-RPC

Si aucun service utilisé (application mobile officielle WordPress, Jetpack, intégration tierce) ne dépend de XML-RPC, la désactivation complète élimine purement et simplement cette surface d’attaque. À l’inverse, si un service actif en dépend, une restriction plus fine – blocage de system.multicall uniquement, ou limitation d’accès par IP – permet de conserver la fonctionnalité nécessaire sans l’exposition la plus risquée.

Comment sécuriser XML-RPC concrètement

  • Désactiver complètement le protocole si aucun service ne l’utilise, via un plugin dédié ou un filtre WordPress
  • Bloquer l’accès au niveau serveur (règle .htaccess ou configuration Nginx) si une désactivation applicative n’est pas souhaitée
  • Surveiller les journaux d’accès pour repérer un volume anormal de requêtes vers xmlrpc.php
  • Combiner avec un WAF qui filtre spécifiquement les abus connus de ce protocole

Questions fréquentes

XML-RPC permet à des applications externes d’interagir avec WordPress à distance, comme la publication depuis une application mobile ou la synchronisation avec Jetpack. Le point d’entrée technique est le fichier xmlrpc.php présent par défaut sur toute installation.

Sa méthode system.multicall permet de regrouper de nombreuses tentatives d’authentification en une seule requête HTTP, ce qui accélère une attaque par force brute et la rend plus difficile à repérer dans les journaux d’accès qu’une attaque directe sur la page de connexion.

Pas systématiquement : si un service actif comme Jetpack ou une application mobile en dépend, mieux vaut restreindre son usage (blocage de system.multicall, limitation par IP) plutôt que le désactiver complètement et casser une fonctionnalité utilisée.

Avatar Julien THERIN
Julien THÉRIN

Entrepreneur passionné du web, ma relation avec WordPress commence il y a plus de 15 ans - par curiosité, en autodidacte. À l'époque je m'intéressais à plusieurs CMS : DotClear, CMS Made Simple, SPIP, Joomla... C'est WordPress qui l'a emporté…

À propos de l'auteur →
Retour en haut