Avis de sécurité Simple Membership
Si vous avez reçu un courriel de ma part vous renvoyant vers cette page, c’est que votre site web
semble exécuter une version de Simple Membership (l’extension de gestion d’adhésions WordPress
par smp7 / wp.insider, située dans vos fichiers à /wp-content/plugins/simple-membership/) qui se
situe dans la plage de versions affectées par un problème de sécurité connu. Cette page explique en
quoi consiste le problème, comment vérifier quelle version vous utilisez, comment effectuer la mise
à jour, et l’étape de suivi qui compte le plus par la suite.
Le problème correspond au CVE-2026-15930, une prise de contrôle non authentifiée d’un compte administrateur via le propre formulaire d’inscription à l’adhésion de l’extension. Il affecte toutes les versions antérieures à 4.7.8 et est corrigé dans la version 4.7.8. Si vous utilisez une version plus ancienne que 4.7.8, mettez à jour Simple Membership vers la version 4.7.8 ou une version ultérieure (la version 4.7.9, sortie plus tard, conserve également le correctif, elle convient donc aussi).
Un point à clarifier, car il diffère de certains des autres avis que j’ai envoyés : il n’existe aucune version antérieure qui soit sûre. Il ne s’agit pas d’une faille introduite à un moment donné puis corrigée. Elle était présente dans l’extension depuis sa toute première version publiée jusqu’à la 4.7.7 incluse, donc « mon installation est trop ancienne pour être affectée » n’est pas une échappatoire ici. Les seules versions non affectées sont la 4.7.8 et les versions ultérieures.
Cet avis ne dépend également pas de la configuration de votre site. Aucun réglage ne doit être
activé : lorsque l’extension est activée, elle publie une page membership-registration portant
son formulaire d’inscription, de sorte qu’une installation par défaut expose le formulaire aux
visiteurs qui ne sont pas connectés. Si votre version est antérieure à 4.7.8, la mise à jour vaut la
peine d’être effectuée rapidement.
Il s’agit d’une faille de l’extension, et non du noyau de WordPress. Un WordPress entièrement à jour ne vous protège pas si l’extension Simple Membership elle-même est sur une version affectée.
Ce message est-il légitime ?
Oui. Il s’agit d’un avis de divulgation responsable et de bonne foi émis par un chercheur en sécurité indépendant. Je ne vous demande pas d’argent, de mots de passe ou d’accès à votre site, et je n’ai pas tenté de pénétrer dans votre site, d’y soumettre quoi que ce soit ou d’exploiter quoi que ce soit.
J’ai simplement examiné les fichiers publiquement visibles que votre site web sert à chaque visiteur (de la même manière que votre page d’accueil est publique) et noté le numéro de version que l’extension publie. Je n’ai spécifiquement pas soumis votre formulaire d’inscription ni envoyé quoi que ce soit par son intermédiaire, et rien dans cette vérification ne touche vos données, votre zone d’administration ou toute partie privée de votre site (plus de détails sous Ce que j’ai fait et n’ai pas fait ci-dessous).
Si vous souhaitez vérifier mon identité, consultez les coordonnées en bas de cette page et la page À propos.
Pourquoi cela compte
Simple Membership ajoute des niveaux d’adhésion et du contenu protégé à un site WordPress, et il offre aux visiteurs un formulaire d’inscription public afin qu’ils puissent s’inscrire eux-mêmes à une adhésion. Ce formulaire est le point d’entrée ici.
Dans les versions affectées, l’extension ne vérifiait pas si WordPress avait effectivement créé le nouveau compte avant de poursuivre l’enregistrement des informations soumises. Lorsque l’inscription demandée ne pouvait pas être créée en tant que nouvel utilisateur authentique parce que le nom choisi entrait en collision avec un compte déjà existant, l’extension poursuivait malgré tout et écrivait les informations soumises sur ce compte existant. L’effet pratique : l’adresse e-mail et le mot de passe saisis dans le formulaire d’inscription public deviennent les identifiants de connexion d’un compte déjà présent sur le site. En pratique, le compte qui se retrouve ainsi écrasé est l’administrateur d’origine du site, ce qui confère le contrôle du site à quiconque a rempli le formulaire.
Deux points méritent d’être énoncés clairement. Premièrement, aucune connexion n’est requise et rien n’a besoin d’être mal configuré : un visiteur anonyme et la page d’inscription que l’extension publie d’elle-même suffisent. Deuxièmement, le résultat est une prise de contrôle administrative plutôt qu’une fuite de données limitée, c’est pourquoi la recommandation ici est de mettre à jour rapidement plutôt que d’intégrer cela à votre prochaine fenêtre de maintenance.
Je décris cela au niveau qu’un propriétaire de site doit connaître pour agir, et pas plus. Je ne publie pas les détails qui permettraient à quelqu’un de le reproduire, et je vous demande de ne pas l’essayer contre votre propre site ou celui de quiconque. Lire votre numéro de version, comme décrit ci-dessous, vous dit tout ce dont vous avez besoin pour décider quoi faire.
Si mon courriel a cité ce problème, cela signifie que la version que votre site indique est antérieure à 4.7.8. Je n’ai pas testé si votre site particulier est exploitable ; tout ce que j’ai observé, c’est la version.
Suis-je concerné ?
Tout se résume à une seule question : quelle version de Simple Membership utilisez-vous ? Vous n’avez pas besoin de me faire confiance, et il existe trois façons de vérifier. Contrairement à certaines extensions dont je parle, les trois sont fiables ici, car elles indiquent toutes le même numéro de version sous-jacent.
Depuis l’administration WordPress (faisant foi) :
- Connectez-vous à votre tableau de bord WordPress (généralement à
yourdomain.com/wp-admin). - Allez dans Extensions puis Extensions installées.
- Trouvez Simple Membership, l’entrée dont le dossier est
simple-membership, et notez la version affichée sous son nom.
Depuis le manifeste public (aucune connexion requise) : ouvrez
yourdomain.com/wp-content/plugins/simple-membership/readme.txt dans un navigateur. La ligne
Stable tag: près du début est la version que votre installation indique, et il s’agit du même
fichier public que j’ai lu.
Depuis le code source de votre page (aucune connexion requise) : affichez le code source de
n’importe quelle page de votre site et recherchez la feuille de style de l’extension,
css/swpm.common.css, sous /wp-content/plugins/simple-membership/. Le numéro ?ver= qui lui est
attaché est la version de l’extension, tirée de la propre constante de version de l’extension, donc
pour cette extension, c’est une lecture fiable plutôt qu’un leurre.
Appliquez ensuite cette règle, en notant que les versions se comparent numériquement, et non alphabétiquement, de sorte que 4.7.10 serait plus récente que 4.7.8 même si elle paraît plus petite en tant que texte :
- Toute version antérieure à 4.7.8 : affectée. Mettez à jour maintenant. Il n’existe aucun seuil en dessous duquel une version plus ancienne redevient sûre.
- 4.7.8 ou plus récente : déjà corrigée. Cela inclut la 4.7.9, qui conserve le correctif.
Une remarque sur les modules complémentaires de Simple Membership. Les modules complémentaires
payants de l’extension s’installent en tant qu’extensions séparées, dans leurs propres dossiers,
avec leurs propres lignes de version. Le numéro de version d’un module complémentaire ne dit
absolument rien sur ce problème. La version qui compte est celle de l’extension principale
Simple Membership, dossier simple-membership, obtenue par l’une des trois vérifications
ci-dessus.
Comment mettre à jour
La méthode la plus sûre est d’effectuer la mise à jour via WordPress lui-même, après avoir réalisé une sauvegarde :
- Sauvegardez votre site (fichiers et base de données) avant d’apporter des modifications. La plupart des hébergeurs proposent des sauvegardes en un clic, ou vous pouvez utiliser une extension de sauvegarde WordPress.
- Dans l’administration de WordPress, accédez à Tableau de bord puis Mises à jour, ou à Extensions puis Extensions installées. Si une mise à jour de Simple Membership est indiquée, installez-la depuis cet emplacement.
- Si vous préférez utiliser la ligne de commande, WP-CLI effectue la même opération :
wp plugin update simple-membership. - Si aucune mise à jour n’apparaît, vous pouvez télécharger la dernière version directement depuis la page de l’extension sur le répertoire WordPress.org, Simple Membership, et procéder à la mise à jour via Extensions puis Ajouter une extension puis Téléverser une extension.
- Après la mise à jour, confirmez le nouveau numéro de version (4.7.8 ou ultérieur) en suivant les étapes ci-dessus, et vérifiez que votre formulaire d’inscription, vos niveaux d’adhésion et votre contenu protégé fonctionnent normalement.
Si vous utilisez les modules complémentaires payants de Simple Membership, mettez-les à jour en même temps que l’extension principale, car leurs versions sont généralement liées.
Pendant que vous y êtes, il est utile de confirmer que le noyau WordPress et vos autres extensions sont à jour, car le même principe s’applique à toutes.
Après la mise à jour
La mise à jour vers la version 4.7.8 ou ultérieure résout le problème. Il y a ici un suivi plus important que l’entretien habituel, et il vaut la peine d’être lu même si vous êtes convaincu que rien ne s’est produit.
Les conseils habituels passeraient à côté de celui-ci. Lorsque l’on vérifie un site après une faille de prise de contrôle, on recherche des comptes administrateur nouveaux et inconnus. Cette vérification ne trouverait rien ici, car aucun nouveau compte n’est créé. Un compte déjà existant est écrasé, de sorte que le nombre d’administrateurs ne change pas et qu’aucun nom non reconnu n’apparaît dans la liste. Ce qui change, ce sont les identifiants de connexion d’un compte que vous connaissez déjà. Donc :
- Vérifiez l’adresse e-mail de chaque compte administrateur. Dans l’administration WordPress, allez dans Utilisateurs, filtrez sur Administrateur, et confirmez que chacun porte toujours l’adresse e-mail qui devrait être la sienne. Un compte administrateur dont l’adresse e-mail n’est plus celle de la bonne personne est le signe révélateur de ce problème.
- Réinitialisez les mots de passe de vos comptes administrateur, ainsi que ceux de tout autre compte important. Faites-le même si toutes les adresses e-mail semblent correctes.
- La régénération des clés secrètes et des sels de WordPress dans
wp-config.phpest une étape complémentaire recommandée (de nouvelles valeurs sont accessibles en un clic via le générateur de clés secrètes officiel ; leur remplacement déconnecte tous les utilisateurs une fois).
Veuillez noter que la mise à jour ferme la brèche, mais elle n’annule pas un accès déjà obtenu. Si quelqu’un avait pris le contrôle d’un compte avant votre mise à jour, il détient toujours ces identifiants de connexion par la suite, ce qui explique précisément pourquoi la réinitialisation des mots de passe ci-dessus est importante. Si vous trouvez quelque chose qui vous inquiète, traitez-le comme vous le feriez pour tout autre accès non autorisé suspecté.
Je n’ai aucune visibilité sur ce qui aurait pu réellement se produire sur votre site, et je ne l’ai pas vérifié. Il s’agit d’un avis de précaution, et non d’un rapport d’incident.
Ce que j’ai fait et n’ai pas fait
Pour être entièrement transparent concernant la vérification effectuée pour mon courriel : j’ai
uniquement lu deux fichiers publics que votre site sert déjà à chaque visiteur, à savoir le fichier
public readme.txt de l’extension et votre page d’accueil. Je n’ai pas accédé à votre zone
d’administration WordPress, à votre base de données ou à toute partie privée du site.
En particulier, je n’ai jamais soumis votre formulaire d’inscription ni envoyé quoi que ce soit par son intermédiaire. Rien n’a été soumis, testé ou exploité. Cela compte davantage ici que sur la plupart de ces pages, car le formulaire d’inscription est exactement ce que concerne ce problème, donc « je n’y ai pas touché » fait toute la différence entre une divulgation et une intrusion.
Je m’abstiens également, délibérément, de publier les détails qui aideraient quelqu’un à agir sur ce problème. La description ci-dessus s’arrête au niveau dont un propriétaire de site a besoin, et je ne lie aucun code de preuve de concept.
Il s’agit d’une observation basée sur la version : votre site indique une version antérieure à 4.7.8. Un site dans cette situation peut déjà être protégé par d’autres moyens, tels qu’un pare-feu applicatif web ou un correctif rétroporté. Cet avis n’affirme pas que votre site était exploitable au moment de ma vérification.
Je n’ai pas de webmestre / je suis bloqué
Si vous n’êtes pas la personne qui maintient le site, veuillez transférer cette page à la personne qui s’en charge (votre développeur web, agence ou hébergeur). Elle reconnaîtra rapidement les étapes ci-dessus.
Si vous maintenez le site vous-même et que vous êtes bloqué, je serai heureux de vous aider à vous orienter dans la bonne direction, sans frais. Contactez-moi en utilisant les coordonnées ci-dessous.
Contact
Evan Harris, chercheur en sécurité
- Courriel: security@mail.mcpsec.dev
- X: @Evan__Harris
- GitHub: eharris128
- LinkedIn: Evan Harris
Je prends contact concernant ce type de problème uniquement pour aider les exploitants à sécuriser leurs sites. Si vous préférez ne plus être contacté, faites-le-moi savoir et je le respecterai.
Références
Avis officiels et suivi
Éditeur / extension