Aller au contenu
Blog

WordPress · Prime Mover · plugin

WordPress Prime Mover CVE-2026-115806 : un commentaire anonyme, déclenché par la prochaine sauvegarde (9.8)

CVE-2026-115806 (9.8) : un commentaire anonyme piège Prime Mover, et la prochaine sauvegarde de l'admin le désérialise. Chaîne de gadgets fournie par le plugin.

5 min de lectureCVE-2026-115806

CVE-2026-115806 a été publiée par NVD le 24 octobre 2026. Elle touche Prime Mover – Backup and Migration, un plugin WordPress de sauvegarde et de migration de sites, dans toutes ses versions jusqu'à la 2.2.1 incluse.

Les injections d'objet PHP sont fréquentes dans les plugins WordPress. Celle-ci sort du lot pour deux raisons :

  • l'attaquant n'a besoin d'aucun compte : un simple commentaire suffit à déposer la charge ;
  • la chaîne de gadgets est livrée avec le plugin lui-même. Pas besoin qu'un autre plugin ou thème soit installé.

Le déclencheur, lui, est une action parfaitement banale : l'administrateur qui lance une sauvegarde ou une restauration.


La vulnérabilité

ChampValeur
CVECVE-2026-115806
CVSS 3.1 (Wordfence)9.8 (CRITICAL) — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
TypeDésérialisation de données non fiables (CWE-502)
VersionsToutes, jusqu'à 2.2.1 incluse
Publication NVD2026-10-24
Statut NVDReceived (pas encore analysée)

Le score est celui de Wordfence (CNA). NVD n'a pas encore analysé l'entrée ni publié de configuration CPE. Aucune entrée au CISA KEV à la date de rédaction.


Le mécanisme, en trois temps

1. Le dépôt : un commentaire

Un visiteur anonyme poste un commentaire par le formulaire standard de WordPress (wp-comments-post.php). Son contenu est un objet PHP sérialisé, encodé en base64. Il est stocké tel quel dans la colonne comment_content de la table wp_comments.

À ce stade, rien ne se passe. Pour WordPress, c'est un commentaire comme un autre.

2. Le déclencheur : la sauvegarde

Lors d'un export ou d'une restauration, Prime Mover passe le contenu de la base dans une routine de recherche-remplacement (recursiveUnserializeReplace()), qui sert à réécrire les URL et chemins du site lors d'une migration. Cette routine décode le base64 et transmet le résultat à unserialize(), sans restriction allowed_classes.

L'objet de l'attaquant est alors reconstruit, en mémoire, dans le contexte d'une opération lancée par un administrateur.

3. La chaîne : Freemius, embarqué dans le plugin

Une injection d'objet n'a d'effet que si une classe chargée offre une chaîne de gadgets (POP chain) exploitable — on l'expliquait à propos de LearnPress. Ici, la description NVD la nomme : elle se trouve dans la bibliothèque Freemius que Prime Mover embarque, et mène de FS_Clone_Manager::__set jusqu'à update_option().

update_option() écrit dans la table des options de WordPress. Sur un site WordPress, contrôler une option, c'est contrôler la configuration du site (par exemple le rôle attribué par défaut aux nouveaux inscrits, ou l'ouverture des inscriptions). La description NVD s'arrête à update_option() ; le passage à une prise de contrôle complète est notre lecture de ce que permet cette primitive, cohérente avec le 9.8 attribué par Wordfence.

Le paradoxe du UI:N

Le vecteur retient UI:N (aucune interaction utilisateur), alors que l'exploitation attend qu'un administrateur lance une sauvegarde ou une restauration. Ce choix se défend : l'administrateur ne fait rien d'inhabituel et n'a aucun moyen de voir le piège. Mais il a une conséquence pratique : l'exploitation peut survenir longtemps après le dépôt, à la prochaine sauvegarde planifiée ou la prochaine migration. Un commentaire déposé il y a des semaines peut encore être en base.


Versions affectées

NVD (via Wordfence) indique toutes les versions jusqu'à et y compris 2.2.1, sans version corrigée. Vérifie le journal des modifications du plugin sur WordPress.org et l'entrée Wordfence citée en référence avant de considérer une version comme sûre.

wp plugin list --name=prime-mover --fields=name,status,version

Détection

  • Commentaires suspects : contenu composé d'une longue chaîne base64, souvent sans espaces, qui une fois décodée commence par O: ou a: (format de sérialisation PHP). Cela inclut les commentaires en attente de modération et en spam : ils sont eux aussi stockés dans wp_comments.
  • Options modifiées sans action d'un administrateur, en particulier users_can_register et default_role.
  • Nouveaux comptes administrateurs ou changements de rôle inexpliqués, juste après une sauvegarde ou une restauration.
  • Journaux d'accès : rafales de POST vers wp-comments-post.php depuis une même IP.
SELECT comment_ID, comment_date, comment_approved, LEFT(comment_content, 80)
FROM wp_comments
WHERE comment_content REGEXP '^[A-Za-z0-9+/=]{200,}$';

(Adapte le préfixe de table si ton site n'utilise pas wp_.)


Mitigation

  1. Identifier les sites qui utilisent Prime Mover.
  2. Mettre à jour au-delà de 2.2.1 dès qu'une version corrigée est publiée ; à défaut, désactiver le plugin et suspendre les sauvegardes et migrations qui passent par lui.
  3. Avant toute sauvegarde ou restauration avec une version vulnérable : purger les commentaires en spam et en attente, et contrôler les commentaires approuvés avec la requête ci-dessus. C'est notre recommandation, pas une consigne de l'éditeur : elle vise directement le vecteur de dépôt décrit par NVD.
  4. Une archive de sauvegarde créée à partir d'une base piégée transporte le commentaire : la restaurer avec une version vulnérable du plugin, sur le même site ou ailleurs, expose de nouveau au déclencheur.
  5. Si les commentaires ne servent pas sur le site, les fermer retire le point de dépôt.

Pourquoi surveiller en continu vos plugins WordPress

Un plugin de sauvegarde est installé « une fois pour toutes » et rarement revu. Ici, c'est précisément lui qui transforme un commentaire anonyme en modification de la configuration du site, au moment où l'on croit mettre ses données à l'abri.

Avec cveo.tech, inventorie les plugins de tes sites WordPress avec leur version, et reçois une alerte dès qu'une CVE critique les touche.

Chaque lundi

Les CVE critiques de la semaine, dans votre boîte mail

Un email par semaine : les vulnérabilités CVSS ≥ 9 publiées ces sept derniers jours, et nos dernières analyses. Rien d'autre.

Double confirmation par email. Désinscription en un clic, à tout moment.

Surveillez votre propre parc

Recherche CVE, inventaire de parc et alertes email, gratuitement.