Vous avez un formulaire de contact ou de devis sur votre site, avec un champ pour joindre un plan, une photo de chantier ou un dossier PDF. Si ce formulaire tourne avec Forminator Forms en version 1.56.1 ou antérieure, un visiteur non identifié peut y déposer un fichier PHP. Dans certaines configurations, ce fichier devient exécutable, ce qui revient à confier les clés du site.
La vulnérabilité porte la référence CVE-2026-15748 et un score CVSS de 9,8 sur 10. Le plugin, édité par WPMU DEV, compte plus de 600 000 installations actives. Le correctif existe depuis fin juillet 2026, mais treize versions se sont enchaînées jusqu’au 27 août, ce qui brouille la lecture pour un propriétaire de site non technicien.
Cet article explique qui est réellement exposé, quel réglage transforme un simple dépôt de fichier en exécution de code, quelle version installer, et comment vérifier votre site en dix minutes.
À retenir
- La faille CVE-2026-15748 touche Forminator jusqu’à la version 1.56.1 incluse, score 9,8 sur 10.
- Seuls les formulaires combinant un champ fichier et une liste déroulante sont exploitables.
- Un dossier de stockage personnalisé fait sauter la protection .htaccess : risque maximal.
- Installez la 1.57.2, dernière version publiée le 27 août 2026, pas seulement la 1.56.2.
- Activez les mises à jour automatiques : treize correctifs Forminator en cinq semaines.
- Cherchez tout fichier PHP inconnu dans le dossier des envois de formulaires.
Ce que permet exactement la faille
Forminator Forms sert à construire des formulaires de contact, mais aussi des sondages, des quiz et des formulaires de paiement. La vulnérabilité se situe dans la fonction handle_file_upload() de la classe Forminator_Upload, faute de validation suffisante du type de fichier envoyé.
Le mécanisme est le suivant. La fonction set_field_data() recopie dans un tableau interne toutes les propriétés fournies par le visiteur avant que le nettoyage et la validation du champ n’entrent en jeu. Le nettoyeur générique du plugin renvoie sans modification la valeur imbriquée des champs de type select, radio et checkbox. C’est ce chemin de code qui ouvre la brèche.
Résultat : la fonction qui traite les envois fait confiance au type de champ transmis et utilise la configuration fournie par l’attaquant comme si elle venait du site. Celui-ci peut alors activer les types de fichiers personnalisés et imposer sa propre liste d’extensions et de types MIME.
Reste la liste noire du plugin, qui bloque htm, html, js, jar, php, phtml, svg, exe, asp, sh, py et une vingtaine d’autres extensions. Le contournement est d’une simplicité déconcertante : la liste compare des clés exactes, elle supprime la clé php mais pas la clé équivalente ph(p). En envoyant le motif ph(p)|text/x-php, un fichier PHP passe.
La vulnérabilité est classée CWE-434, téléversement non restreint de fichier de type dangereux. Son vecteur CVSS retient une attaque réseau, une complexité faible, aucun privilège requis et aucune interaction utilisateur. Autrement dit, un script automatisé suffit.
Qui est vraiment exposé, et qui ne l’est pas

Deux conditions doivent être réunies, et c’est là que la plupart des articles s’arrêtent trop vite.
Première condition : la structure du formulaire. Le site doit publier un formulaire qui contient à la fois un champ File Upload et un champ Select. La liste déroulante ne sert que de véhicule : elle n’a aucun lien fonctionnel avec le champ fichier, c’est simplement le type de champ qui atteint le retour de tableau imbriqué exploité par l’attaque. Un formulaire de contact avec pièce jointe mais sans menu déroulant n’est pas exploitable par ce chemin.
Seconde condition : l’emplacement de stockage. En configuration par défaut, Forminator dépose les fichiers dans un dossier protégé par un fichier .htaccess qui empêche l’exécution de PHP. Le fichier malveillant arrive sur le serveur, mais il ne s’exécute pas. Le dégât est contenu.
Le scénario grave concerne les sites où un administrateur a défini un dossier de stockage personnalisé, l’option Custom File Upload Storage root. Dans ce cas, le fichier .htaccess n’est créé qu’au premier besoin, lors d’une requête côté public, moment où la fonction WordPress chargée de l’écrire n’est pas chargée. Le dossier reste donc sans protection. Une simple requête sur l’adresse du fichier téléversé fait exécuter le code PHP par le serveur web. De là, un webshell, puis la prise de contrôle complète du site.
Si un développeur a un jour déplacé le dossier des envois Forminator hors de wp-content/uploads pour des raisons de rangement ou de sauvegarde, votre site figure dans la catégorie à risque élevé.
La chronologie et le piège des treize versions
La séquence mérite d’être connue, car elle change la réponse à la question « ai-je fini de mettre à jour ».
- Le 11 juillet 2026, un chercheur sous le pseudonyme daroo signale la faille via le programme Bug Bounty de Wordfence.
- Le 14 juillet, le rapport est validé, la preuve de concept confirmée, et les détails transmis à WPMU DEV le même jour.
- Le 20 juillet, l’éditeur accuse réception et soumet un correctif pour relecture.
- Le 30 juillet, trois versions sortent d’affilée : 1.56.0.1 pour une élévation de privilèges, 1.56.1 pour un XSS, 1.56.2 pour le téléversement arbitraire. Le changelog officiel date cette dernière du 30 juillet, la chronologie de Wordfence du 31.
- Le 17 août, l’avis public est publié et la presse spécialisée reprend l’alerte. La CVE est enregistrée le 18 août avec un score de base de 9,8. Le chercheur a touché une prime de 2 048,00 dollars.
Puis la cadence s’accélère. La 1.57.0 sort le 12 août avec des évolutions fonctionnelles. Le 18 août, huit versions correctives se succèdent le même jour : 1.57.0.1 à 1.57.0.4 pour des XSS, 1.57.0.5 sur le Hub-Connector, 1.57.0.6 pour une injection d’objet PHP, 1.57.0.7 pour une élévation de privilèges, 1.57.0.8 sur le traitement des paiements, 1.57.1 sur l’inscription de site en multisite. Enfin, les 1.57.1.1 et 1.57.2 arrivent le 27 août, toutes deux avec la mention « Security improvements ».
La leçon est claire : mettre à jour une fois le 31 juillet ne suffisait pas. À la date du 6 septembre 2026, la fiche officielle du plugin Forminator affiche la version 1.57.2, WordPress 6.4 minimum, testé jusqu’à 7.1, et PHP 7.4 minimum. C’est cette version qu’il faut avoir.
À lire aussi : Thèmes WordPress : la mise à jour que tout le monde oublie
Votre contrôle en dix minutes
Aucune compétence technique particulière n’est nécessaire pour les quatre premières étapes.
- Ouvrez le tableau de bord, allez dans les plugins et lisez le numéro de version de Forminator. En dessous de 1.57.2, lancez la mise à jour immédiatement.
- Ouvrez chacun de vos formulaires et repérez ceux qui contiennent un champ de téléversement de fichier. Pour chacun, vérifiez s’il comporte aussi une liste déroulante. Cette combinaison est le déclencheur de la faille.
- Dans les réglages de stockage de Forminator, vérifiez si un dossier personnalisé a été défini pour les fichiers reçus. Si oui, revenez au dossier par défaut ou faites contrôler la présence d’un fichier .htaccess dans ce dossier.
- Activez les mises à jour automatiques pour Forminator depuis la liste des plugins. Vu le rythme d’août 2026, c’est le réglage le plus rentable de la journée.
- Via votre gestionnaire de fichiers ou un accès FTP, ouvrez le dossier des envois de formulaires et cherchez tout fichier avec l’extension .php, .phtml ou une extension inhabituelle. Une pièce jointe légitime est un PDF, une image ou un document bureautique, jamais un script.
Si un fichier suspect apparaît, ne vous contentez pas de le supprimer. Changez tous les mots de passe administrateurs, vérifiez la liste des comptes utilisateurs à la recherche d’un administrateur inconnu, et faites analyser l’installation. Un webshell laisse souvent d’autres portes derrière lui, y compris des fichiers déposés ailleurs. Un contrôle des permissions de fichiers WordPress fait partie du nettoyage.
Wordfence indique que tous ses utilisateurs, y compris ceux de la version gratuite, sont couverts contre cette attaque par la protection Malicious File Upload intégrée à son pare-feu.
Un plugin qui répète le même type d’erreur
Ce n’est pas la première fois que Forminator laisse passer un fichier arbitraire. En août 2023, la CVE-2023-4596 touchait les versions 1.24.6 et antérieures, corrigée en 1.25.0. Le fichier était écrit sur le disque avec file_put_contents avant tout contrôle, la vérification du type n’intervenant qu’après l’écriture. Le correctif a consisté à déplacer l’écriture après le contrôle. L’attaque exigeait alors un formulaire basé sur le modèle « Create Post » ouvert aux visiteurs, et le plugin comptait plus de 400 000 installations.
En 2024, la CVE-2024-28890 signalait un nouveau téléversement arbitraire non authentifié dans les versions antérieures à 1.29.0. En juillet 2025, la CVE-2025-6463 changeait de registre : suppression de fichier arbitraire. L’effacement de wp-config.php replaçait le site en état de configuration initiale, ce qui ouvrait la voie à une prise de contrôle par un attaquant qui reconnectait le site à sa propre base de données.
Ce genre de série concerne beaucoup d’extensions à large diffusion, comme le montrent les failles critiques recensées sur des plugins populaires en 2026. Le même jour que l’avis Forminator, un contournement d’authentification était documenté dans User Profile Builder, CVE-2026-15826, également noté 9,8, sur plus de 40 000 installations, corrigé le 16 juillet en version 3.16.5 et exploitable uniquement si l’option de connexion automatique était active. Là encore, un réglage précis séparait les sites vulnérables des autres.
Trois gestes à faire aujourd’hui
Mettez Forminator en 1.57.2 et activez la mise à jour automatique du plugin. Vérifiez si un de vos formulaires combine champ fichier et liste déroulante, puis contrôlez que les fichiers reçus atterrissent bien dans le dossier par défaut. Enfin, jetez un oeil au dossier des envois : aucun fichier PHP n’y a sa place.
Aucune exploitation active de CVE-2026-15748 n’était documentée dans les avis publiés à la mi-août, mais un score de 9,8 sans authentification attire les scanners automatisés en quelques jours. Si le doute persiste sur l’état de votre installation, faites réaliser un audit et un nettoyage par un prestataire, par exemple via des services de maintenance WordPress. Et gardez en tête l’utilité d’un scan régulier des failles de sécurité plutôt qu’une vérification une fois par an.
FAQ
Faut-il installer la 1.56.2 ou la 1.57.2 ?
La 1.56.2, publiée fin juillet 2026, corrige bien le téléversement arbitraire. Mais huit versions correctives sont sorties le 18 août pour d’autres problèmes (XSS, injection d’objet PHP, élévation de privilèges, paiements), puis deux autres le 27 août. Installez la 1.57.2, dernière version disponible au 6 septembre 2026. Rester sur la 1.56.2 laisse ouvertes des failles corrigées depuis.
Faut-il désactiver Forminator en attendant ?
Non, si vous pouvez mettre à jour tout de suite : la version 1.57.2 corrige la faille. Désactiver le plugin supprime aussi vos formulaires de contact et de devis, donc vos demandes entrantes. Si la mise à jour est impossible dans l’heure, retirez temporairement le champ de téléversement de fichier de vos formulaires publics, ce qui coupe la condition d’exploitation.
Mon formulaire n’a pas de liste déroulante, suis-je à l’abri ?
Par ce chemin d’attaque précis, oui : l’exploitation nécessite un formulaire publiant à la fois un champ File Upload et un champ Select. Cela ne dispense pas de la mise à jour. Forminator a cumulé treize versions correctives entre le 30 juillet et le 27 août 2026, dont plusieurs sans rapport avec le téléversement de fichiers.
Que signifie un CVSS de 9,8 pour une petite entreprise ?
Le score maximal est 10. À 9,8, l’attaque se mène à distance, sans mot de passe, sans clic de votre part, avec une complexité faible. Concrètement, un robot peut tester des milliers de sites par heure. Pour un artisan ou un indépendant, la conséquence typique est un site détourné vers du spam ou de la fraude, avec déréférencement à la clé.
Comment repérer un fichier PHP suspect dans le dossier des envois ?
Ouvrez le dossier de stockage des fichiers de formulaires via le gestionnaire de fichiers de votre hébergeur ou un accès FTP. Triez par date de modification et cherchez toute extension .php, .phtml ou .php5. Les pièces jointes légitimes de vos clients sont des PDF, images ou documents bureautiques. Un script trouvé là impose un changement de mots de passe et un audit complet.