Avis de sécurité Forminator Forms
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 Forminator Forms (l’extension WordPress par WPMU DEV, située dans
vos fichiers à /wp-content/plugins/forminator/) 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 déterminer s’il s’applique à votre
site, comment lire votre version sans être induit en erreur, et comment procéder à la mise à jour.
Avant toute chose, le fait le plus important à retenir de cet avis : une version située dans la plage affectée ne signifie pas en soi que votre site est exposé. Le problème ci-dessous ne se pose que sur les sites dont les formulaires incluent un champ de téléversement, et je ne peux pas voir comment vos formulaires sont construits depuis l’extérieur :
- Le problème ne concerne qu’un formulaire Forminator qui contient un champ de téléversement. Si aucun de vos formulaires ne permet aux visiteurs de téléverser des fichiers, cela ne vous concerne pas, même sur une version affectée.
- Notez que c’est la présence d’un champ de téléversement qui compte, et non sa configuration. Restreindre un champ à des types spécifiques (par exemple des images ou des PDF) ne ferme pas cette faille, car le défaut contourne cette restriction. Ce qui vous retire de la plage de risque est l’absence totale de formulaire avec un champ de téléversement.
Je peux lire la version de votre extension à partir d’un fichier public, mais je ne peux pas lire vos formulaires, cet avis est donc un avertissement de précaution plutôt qu’un constat confirmé concernant votre site.
Le problème correspond au CVE-2026-15748, une faille de téléversement de fichiers non authentifiée dans la gestion des formulaires de l’extension. Il affecte les versions 1.18.1 à 1.56.1 et est corrigé dans la version 1.56.2, publiée le 30 juillet 2026. Si vous utilisez une version affectée, mettez à jour Forminator Forms vers la version 1.56.2 ou une version ultérieure (la version actuelle au moment de la rédaction est dans la gamme 1.57.x).
Un mot sur l’urgence, car il s’agit d’un avis conditionnel. Si aucun de vos formulaires ne comporte de champ de téléversement, la mise à jour relève de la maintenance ordinaire de l’extension. Si l’un d’eux en comporte un, veuillez traiter la mise à jour comme une priorité : dans cette configuration, la faille pourrait permettre à un visiteur sans aucun compte d’enregistrer un fichier de son choix sur votre serveur, un fichier que le serveur pourrait ensuite exécuter, ce qui peut conduire à un contrôle total du site.
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 Forminator 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, de soumettre l’un de vos formulaires ou de téléverser 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 de formulaire, je n’ai pas téléversé de fichier, et je ne me suis pas approché du gestionnaire de téléversement de l’extension. 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
Forminator vous permet de créer des formulaires de contact, des quiz, des sondages et des formulaires de paiement, et certains de ces formulaires peuvent offrir aux visiteurs un champ de téléversement afin qu’ils puissent joindre un document ou une image. Pour garantir la sécurité de cette fonction, l’extension est censée contrôler quels fichiers elle accepte et où elle les stocke.
Dans les versions affectées, ces contrôles pouvaient être contournés. Une soumission de formulaire truquée pouvait faire passer une valeur de champ falsifiée à travers la partie de l’extension qui enregistre une entrée, puis dans la routine de sauvegarde du fichier, dont la liste des types de fichiers interdits pouvait être contournée avec une requête spécialement conçue. Le résultat est qu’un fichier que l’extension aurait dû refuser pouvait être écrit dans votre répertoire de téléversements. Là où le serveur traite ensuite ce fichier comme quelque chose qu’il peut exécuter, le fichier d’un inconnu s’exécute sur votre site.
Deux conséquences en découlent, et elles vont dans des directions opposées. La première est que cela n’importe que là où un formulaire possède réellement un champ de téléversement ; un site dont les formulaires ne collectent aucun téléversement n’est pas atteignable via ce problème. La seconde est que là où un tel champ existe réellement, aucun compte, aucun mot de passe et aucune coopération de quiconque ne sont requis : le formulaire est ouvert au public par conception. Et voici la partie la plus susceptible d’être mal interprétée : restreindre ce champ à « images uniquement » ou « PDF uniquement » ne vous sauve pas, car la faille contourne la vérification de type du champ lui-même. La question est simplement de savoir si un champ de téléversement existe sur l’un de vos formulaires.
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 essayer de le reproduire contre votre propre site ou celui de quiconque. Vérifier vos formulaires et votre 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 se situe dans la plage de versions affectées. Je n’ai pas testé si votre site particulier est exploitable, et je ne peux pas voir comment vos formulaires sont construits. Tout ce que j’ai observé, c’est la version.
Suis-je concerné ?
Deux questions décident de la situation, dans cet ordre.
Premièrement : un formulaire possède-t-il un champ de téléversement ?
C’est la question décisive, et seul vous pouvez y répondre. Vérifier vos propres formulaires est entièrement sûr et constitue tout l’intérêt de cette page.
- Connectez-vous à votre tableau de bord WordPress et ouvrez Forminator dans la barre latérale, puis Formulaires.
- Ouvrez chaque formulaire et recherchez un champ Téléversement (le type de champ de téléversement de Forminator).
- Si aucun de vos formulaires ne possède de champ de téléversement, ce problème ne concerne pas votre site, même sur une version affectée, bien que la mise à jour reste recommandée dans le cadre de la maintenance ordinaire.
- Si un formulaire possède un champ de téléversement, le problème vous concerne et vous devriez procéder à la mise à jour rapidement. Restreindre le champ aux types de fichiers dont vous avez réellement besoin est une bonne pratique, mais ce n’est pas une correction pour ce problème : la mise à jour est la correction.
Veuillez ne pas essayer de reproduire le problème contre votre propre site ou celui de quiconque ; vous n’avez pas besoin de le faire pour répondre à la question ci-dessus.
Deuxièmement : quelle version utilisez-vous ?
Vous n’avez pas besoin de me faire confiance. Pour cette extension, il existe plusieurs façons de vérifier qui pourraient vous induire en erreur, il est donc utile de lire cette partie attentivement.
Depuis l’administration WordPress (faisant foi) :
- Dans votre tableau de bord WordPress, allez dans Extensions puis Extensions installées.
- Trouvez Forminator Forms, l’entrée dont le dossier est
forminator, et notez la version affichée sous son nom.
Depuis le code source de votre page (aucune connexion requise) : affichez le code source d’une page de votre site qui affiche un formulaire Forminator, et recherchez l’un des actifs frontaux de l’extension à exactement ces chemins :
/wp-content/plugins/forminator/build/front/front.multi.min.js?ver=...
/wp-content/plugins/forminator/assets/forminator-ui/js/forminator-form.min.js?ver=...
/wp-content/plugins/forminator/assets/forminator-ui/css/forminator-icons.min.css?ver=...
Le numéro ?ver= attaché à ces fichiers sous le dossier forminator est la version propre de l’extension. Pour cette extension, elle suit la version de publication, c’est pourquoi je la considère comme une lecture fiable.
Notez que les actifs n’apparaissent que sur une page qui affiche réellement un formulaire Forminator, donc vérifiez une page
qui en contient un (une page d’accueil nue sans formulaire ne montre souvent rien).
Deux pièges à éviter ici. Les deux font qu’une lecture naïve rapporte une version qui n’a rien à voir avec Forminator :
- La bibliothèque de numéros de téléphone intégrée. Forminator inclut une copie d’une bibliothèque tierce appelée
intlTelInput, qui possède son propre numéro de version,
4.0.3. Selon votre version, elle se trouve soit dans le fichierassets/css/intlTelInput.min.csssoitassets/js/library/intlTelInput.min.js, tous deux dans le dossier Forminator. Si vous lisez un?ver=4.0.3sur l’un d’eux, il s’agit de la version de la bibliothèque, pas de celle de Forminator. Forminator n’a jamais eu de version 4.x. Lisez uniquement les fichiers listés ci-dessus, et considérez toute version qui ne commence pas par1.comme « n’étant pas la version de Forminator ». - La feuille de style par formulaire sous votre dossier de téléversements. Forminator écrit une petite feuille de style pour
chaque formulaire publié à un chemin comme
/wp-content/uploads/forminator/<quelque-chose>/style-<nombre>.css?ver=<un long nombre de 10 chiffres>. Ce long nombre est un horodatage, pas une version. Il se trouve souswp-content/uploads/, pas sous le dossier de l’extension, donc ignorez-le complètement.
Une note supplémentaire spécifique à cette extension : sa ligne « Stable tag » dans le readme.txt intégré n’est pas
fiable ici, car elle peut avoir du retard sur la version réelle (les builds 1.56.1 et 1.56.2 rapportent tous deux 1.56.0),
donc contrairement à certaines extensions, ce fichier ne vous dira pas laquelle de ces deux versions vous avez. L’écran d’administration
et l’actif ?ver= ci-dessus sont les lectures auxquelles faire confiance.
Appliquez ensuite cette règle, en notant que les versions se comparent numériquement, pas alphabétiquement :
- 1.18.1 à 1.56.1 : potentiellement affecté, sous réserve de la question du champ de téléversement ci-dessus. Mettez à jour maintenant.
- 1.56.2 ou plus récent : déjà corrigé pour ce qui concerne ce problème. Prendre la dernière version disponible (la gamme 1.57.x au moment de la rédaction) est la meilleure option.
- Plus ancien que 1.18.1 : non affecté par ce problème. La faiblesse spécifique décrite ci-dessus a été introduite dans la version 1.18.1. Cela dit, une version aussi ancienne est loin d’être à jour sur tous les autres aspects, et la mise à jour est recommandée pour des raisons générales.
Si vous ne pouvez pas obtenir une version lisible à partir des vérifications ci-dessus, ce n’est pas inhabituel : les extensions de cache ou
d’optimisation suppriment régulièrement la valeur ?ver=, et les actifs n’apparaissent que là où un formulaire
s’affiche. L’écran d’administration dans la première vérification contient toujours la réponse.
Comment mettre à jour
L’extension est gratuite, toujours publiée et activement maintenue, la correction consiste donc en une mise à jour normale. 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 Forminator 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 forminator(la commande utilise le nom du dossier). - 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, Forminator Forms, 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 (1.56.2 ou ultérieur) en suivant les étapes ci-dessus, et vérifiez que vos formulaires et tout téléversement de fichier associé fonctionnent normalement.
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 1.56.2 ou ultérieure résout le problème, et pour la plupart des sites, cela constitue la totalité de la tâche. Cette page est un avis de précaution, et non un rapport d’incident : je n’ai aucune visibilité sur ce qui aurait pu se produire sur votre site, et je ne l’ai pas vérifié.
Un suivi mérite d’être envisagé, et il est conditionné par la même question relative au champ de téléversement de fichier. Si votre site comportait un formulaire avec un champ de téléversement de fichier lors de l’utilisation d’une version affectée, il était alors au moins théoriquement possible qu’un fichier ait été placé sur votre serveur. La mise à jour ferme la brèche, mais elle ne supprime rien qui aurait déjà pu être enregistré. Dans ce cas, quelques précautions de routine sont donc recommandées :
- Parcourez votre répertoire de téléversements (généralement sous
wp-content/uploads/, y compris la sous-arborescencewp-content/uploads/forminator/) à la recherche de fichiers que vous ne reconnaissez pas, en particulier ceux qui ne correspondent pas au type de documents ou d’images que vos formulaires sont censés recevoir. - Vérifiez vos comptes administrateur, les connexions récentes et toutes les sessions actives pour détecter toute activité que vous ne pouvez pas expliquer.
- Réinitialisez les mots de passe de vos comptes administrateur. 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 (les nouvelles valeurs sont accessibles en un clic via le générateur de clés secrètes officiel, et leur remplacement déconnecte tous les utilisateurs une fois).
Si vous trouvez quelque chose qui vous inquiète, le traitement approprié consiste à réagir comme pour tout accès non autorisé suspecté. Si aucun de vos formulaires ne comportait de champ de téléversement de fichier, la mise à jour seule suffit.
Ce que j’ai fait et n’ai pas fait
Pour être entièrement transparent concernant le contrôle effectué suite à mon courriel : j’ai uniquement lu les fichiers que votre site sert déjà à tous les visiteurs, spécifiquement le readme.txt public de l’extension, votre page d’accueil et les adresses des ressources écrites dans cette page. 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 aucun de vos formulaires, jamais téléversé de fichier, et jamais touché au gestionnaire de téléversement de l’extension. Rien n’a été soumis, testé ou exploité. Cela est plus important ici que sur la plupart de ces pages, car le téléversement d’un fichier est exactement l’action concernée par 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 permettraient à quelqu’un d’exploiter 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 dans la plage affectée. Ce n’est pas une affirmation selon laquelle votre site était exploitable au moment de mon contrôle. Comme le problème dépend de la présence d’un champ de téléversement de fichier dans l’un de vos formulaires, ce que je ne peux pas voir, un site dans cette plage n’est peut-être pas du tout exposé, et un site dans cette plage peut être protégé séparément par d’autres moyens, tels qu’un pare-feu applicatif web.
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). Ils reconnaîtront rapidement les étapes ci-dessus.
Si vous maintenez le site vous-même et que vous êtes bloqué, je suis 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