Si vous avez reçu de ma part un courriel renvoyant vers cette page, c’est parce que votre site semble utiliser une version de Drag and Drop Multiple File Upload for Contact Form 7 (l’extension WordPress répertoriée sur WordPress.org sous ce nom, par codedropz, qui se trouve dans vos fichiers sous /wp-content/plugins/drag-and-drop-multiple-file-upload-contact-form-7/) qui entre dans la plage concernée par un problème de sécurité connu. Cette page explique en quoi consiste ce problème, comment déterminer s’il s’applique à votre site, comment lire votre version sans vous laisser induire en erreur, et comment mettre à jour.

À noter : il ne s’agit pas de la version WooCommerce. Le même auteur publie une extension distincte, « Drag and Drop Multiple File Upload for WooCommerce » (dossier drag-and-drop-multiple-file-upload-for-woocommerce), qui est un produit différent avec sa propre numérotation de version. Si l’extension présente dans vos fichiers est celle pour WooCommerce plutôt que celle pour Contact Form 7, cette page ne la concerne pas. Tout ce qui suit ne concerne que le module complémentaire Contact Form 7.

Avant toute chose, le fait le plus important à propos de cet avis : une version dans la plage concernée ne signifie pas en soi que votre site est exposé. Le problème décrit ci-dessous n’entre en jeu que sur les sites disposant d’un type particulier de champ de téléversement, et je ne peux pas voir de l’extérieur comment vos formulaires sont configurés :

  • Le problème n’atteint un formulaire Contact Form 7 que s’il comporte l’un des champs de téléversement par glisser-déposer de cette extension configuré pour accepter tout type de fichier.
  • Un champ qui restreint les types acceptés à des types précis (par exemple des images ou des PDF) n’est pas exposé à ce problème, même sur une version concernée. Restreindre les types acceptés est également le comportement par défaut lorsqu’un champ n’en précise aucun.

Je peux lire la version de votre extension dans un fichier public, mais je ne peux pas lire la configuration de vos formulaires : cet avis est donc un signalement de précaution, et non un constat confirmé concernant votre site.

Le problème est CVE-2026-18781, une faille de téléversement de fichier sans authentification dans le traitement des téléversements de l’extension. Elle concerne les versions 1.3.9.3 à 1.3.9.8 et elle est corrigée dans la 1.3.9.9. Si vous utilisez une version concernée, mettez Drag and Drop Multiple File Upload for Contact Form 7 à jour vers la 1.3.9.9 ou une version ultérieure, et maintenez également Contact Form 7 lui-même à jour.

Un mot sur l’urgence, car cet avis est conditionnel. Si aucun de vos champs de téléversement n’accepte tout type de fichier, la mise à jour relève de la maintenance ordinaire de l’extension. Si l’un d’eux le fait, merci de traiter la mise à jour en priorité : dans cette configuration, la faille pourrait permettre à un visiteur sans aucun compte d’enregistrer sur votre serveur un fichier de son choix, d’un type que le serveur pourrait ensuite exécuter, ce qui peut mener à la prise de contrôle complète du site.

Il s’agit d’une faille de l’extension, et non du noyau WordPress, et elle est distincte de Contact Form 7 lui-même. Un WordPress parfaitement à jour, et un Contact Form 7 à jour, ne vous protègent pas si ce module complémentaire est dans une version concernée.

Ce message est-il légitime ?

Oui. Il s’agit d’un avis de divulgation responsable, de bonne foi, émis par un chercheur en sécurité indépendant. Je ne vous demande ni argent, ni mots de passe, ni accès à votre site, et je n’ai pas tenté d’y entrer, de soumettre l’un de vos formulaires, ni d’y téléverser quoi que ce soit.

Je me suis contenté de consulter des fichiers publics que votre site sert à tout visiteur (de la même manière que votre page d’accueil est publique) et de relever le numéro de version que publie l’extension. Je n’ai en particulier pas soumis de formulaire, 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 espace d’administration ni à aucune 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 qui je suis, voyez les coordonnées au bas de cette page et la page À propos.

Pourquoi cela compte

Cette extension ajoute des champs de téléversement de fichiers par glisser-déposer aux formulaires Contact Form 7, afin que les visiteurs puissent joindre des fichiers en soumettant un formulaire : une candidature, une demande d’assistance, une photo. Pour que cela reste sûr, l’extension est censée refuser les types de fichiers dangereux.

Dans les versions concernées, cette vérification pouvait être contournée. L’extension examinait le nom du fichier téléversé pour décider si le type était autorisé, puis modifiait ce nom, et enregistrait le fichier sans revérifier le nom modifié. Comme le nom était changé après avoir été approuvé, il était possible de construire un nom tel que la version vérifiée paraisse inoffensive tandis que la version réellement enregistrée ne l’était pas, ce qui laissait un type de fichier interdit atterrir sur le serveur. Lorsque le serveur traite ensuite ce fichier comme quelque chose qu’il peut exécuter, le résultat est que le fichier d’un inconnu s’exécute sur votre site.

Deux conséquences en découlent, et elles tirent en sens opposés. La première est que cela ne compte que si un formulaire dispose d’un champ de téléversement configuré pour accepter tout type de fichier. Lorsque chaque champ de téléversement est limité à un ensemble précis de types, le fichier déguisé ne correspond à aucun type autorisé et est rejeté, si bien qu’un site dans cet état n’est pas atteignable par ce problème. La seconde est que lorsqu’un champ « tout accepter » existe bel et bien, aucun compte, aucun mot de passe et aucune coopération de qui que ce soit n’est nécessaire : le formulaire est ouvert au public par conception.

Je décris tout ceci au niveau dont un propriétaire de site a besoin pour agir, et pas au-delà. Je ne publie pas les détails qui permettraient à quelqu’un de reproduire la faille, et je vous demande de ne pas l’essayer contre votre propre site ni contre celui d’autrui. Lire la configuration de vos formulaires et 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 citait ce problème, cela signifie que la version annoncée par votre site entre dans la plage concernée. Je n’ai pas testé si votre site en particulier était exploitable, et je ne peux pas voir comment vos formulaires sont configurés. Tout ce que j’ai observé, c’est la version.

Suis-je concerné ?

Deux questions permettent d’en décider, dans cet ordre.

Premièrement : un champ de téléversement accepte-t-il « tout type de fichier » ?

C’est la question déterminante, et vous seul pouvez y répondre. Vérifier vos propres formulaires est entièrement sûr, et c’est précisément l’objet de cette page.

  1. Connectez-vous à votre tableau de bord WordPress et ouvrez Contact (Contact Form 7) dans la barre latérale.
  2. Ouvrez chaque formulaire proposant un téléversement de fichier, et repérez le champ de téléversement par glisser-déposer (le champ propre à cette extension, ajouté à côté des balises standard de Contact Form 7).
  3. Vérifiez si ce champ limite les types de fichiers qu’il accepte.
  • Si chaque champ de téléversement est restreint à des types précis (par exemple jpg, png, pdf), ce problème n’atteint pas votre site, même sur une version concernée. La mise à jour reste néanmoins utile, à titre de maintenance ordinaire.
  • Si un champ de téléversement, quel qu’il soit, est configuré pour accepter tout type de fichier, le problème vous concerne, et vous devriez mettre à jour rapidement. Restreindre ce champ aux types dont vous avez réellement besoin est une mesure sensée en soi, mais c’est la mise à jour qui corrige le problème.

Merci de ne pas essayer de reproduire le problème contre votre propre site ni contre celui d’autrui ; ce n’est pas nécessaire pour répondre à la question ci-dessus.

Deuxièmement : quelle version utilisez-vous ?

Vous n’avez pas à me croire sur parole. Pour cette extension, il existe une façon précise de vérifier qui vous induira en erreur, il vaut donc la peine de lire attentivement cette partie.

Depuis l’espace d’administration WordPress (source faisant foi) :

  1. Dans votre tableau de bord WordPress, allez dans Extensions puis Extensions installées.
  2. Repérez Drag and Drop Multiple File Upload - Contact Form 7, l’entrée dont le dossier est drag-and-drop-multiple-file-upload-contact-form-7, et notez la version affichée sous son nom.

Depuis le manifeste public (sans connexion) : ouvrez votredomaine.fr/wp-content/plugins/drag-and-drop-multiple-file-upload-contact-form-7/readme.txt dans un navigateur. La ligne Stable tag:, près du début, indique la version annoncée par votre installation, et c’est l’une des sources publiques que j’ai lues.

Depuis le code source de votre page (sans connexion) : consultez le code source d’une page de votre site et recherchez l’une des ressources publiques de l’extension exactement à ces chemins :

/wp-content/plugins/drag-and-drop-multiple-file-upload-contact-form-7/assets/css/dnd-upload-cf7.css?ver=...
/wp-content/plugins/drag-and-drop-multiple-file-upload-contact-form-7/assets/js/codedropz-uploader-min.js?ver=...

Le numéro ?ver= attaché à ces fichiers sous ce dossier correspond à la version propre de l’extension. Pour cette extension, il suit exactement la version publiée, c’est pourquoi je le considère comme une lecture fiable.

Le piège à éviter ici. L’extension WooCommerce distincte du même auteur inclut un fichier portant le même nom, codedropz-uploader-min.js, sous son propre dossier (drag-and-drop-multiple-file-upload-for-woocommerce), avec un numéro de version sans rapport. Si vous lisez une version dans le code source de votre page, assurez-vous que le dossier figurant dans le chemin est bien drag-and-drop-multiple-file-upload-contact-form-7 et non celui de WooCommerce ; sinon, vous liriez en réalité la version d’un tout autre produit.

Appliquez ensuite cette règle, en notant que les versions se comparent numériquement, et non alphabétiquement :

  • 1.3.9.3 à 1.3.9.8 : potentiellement concernée, sous réserve de la question du champ de téléversement ci-dessus. Mettez à jour dès maintenant.
  • 1.3.9.9 ou plus récente : déjà corrigée pour ce qui concerne ce problème. Prendre la dernière version disponible est la meilleure option.
  • Antérieure à 1.3.9.3 : non concernée par ce problème précis. La faiblesse décrite ci-dessus a été introduite à partir de la 1.3.9.3. Cela dit, une version aussi ancienne accuse un retard important sur tout le reste, et la mettre à jour reste utile de façon générale.

Si vous n’arrivez pas à obtenir une version lisible avec les vérifications ci-dessus, ce n’est pas inhabituel : les extensions de cache ou d’optimisation suppriment couramment la valeur ?ver=, et les ressources n’apparaissent que là où l’extension se charge. L’écran d’administration de la première étape a toujours la réponse.

Comment mettre à jour

La voie la plus sûre est de mettre à jour depuis WordPress lui-même, après avoir fait une sauvegarde :

  1. Sauvegardez votre site (fichiers et base de données) avant toute modification. La plupart des hébergeurs proposent des sauvegardes en un clic, sinon utilisez une extension de sauvegarde WordPress.
  2. Dans l’administration WordPress, allez dans Tableau de bord puis Mises à jour, ou dans Extensions puis Extensions installées. Si une mise à jour de cette extension est proposée, installez-la depuis là.
  3. Si vous préférez la ligne de commande, WP-CLI fait la même chose : wp plugin update drag-and-drop-multiple-file-upload-contact-form-7 (la commande utilise le nom du dossier).
  4. Si aucune mise à jour n’apparaît, vous pouvez récupérer la dernière version directement depuis la page de l’extension dans le répertoire WordPress.org, Drag and Drop Multiple File Upload for Contact Form 7, et mettre à jour via Extensions puis Ajouter une extension puis Téléverser une extension.
  5. Après la mise à jour, confirmez le nouveau numéro de version (1.3.9.9 ou ultérieure) en suivant les étapes ci-dessus, et vérifiez que vos formulaires et vos téléversements de fichiers fonctionnent toujours normalement.

Pendant que vous y êtes, il vaut la peine de confirmer que le noyau WordPress, Contact Form 7 et vos autres extensions sont à jour, car le même principe vaut pour tous.

Après la mise à jour

Mettre à jour vers la 1.3.9.9 ou une version ultérieure ferme le problème, et pour la plupart des sites, c’est là toute la tâche. Cette page est un avis de précaution, pas un rapport d’incident : je n’ai aucune visibilité sur ce qui a pu se produire sur votre site, et je n’ai pas regardé.

Un suivi mérite d’être envisagé, conditionné à la même question du champ de téléversement. Si votre site comportait un formulaire avec un champ de téléversement « accepter tout type de fichier » alors qu’il utilisait une version concernée, il était alors au moins théoriquement possible qu’un fichier ait été déposé sur votre serveur. La mise à jour ferme la brèche, mais elle ne supprime pas ce qui aurait déjà pu être enregistré ; dans ce cas, quelques précautions habituelles sont donc de mise :

  • Parcourez votre répertoire de téléversements (généralement sous wp-content/uploads/) à 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.
  • Passez en revue vos comptes administrateurs, vos connexions récentes et toute session active à la recherche de tout élément que vous ne pouvez pas justifier.
  • Réinitialisez les mots de passe de vos comptes administrateurs. Régénérer les clés secrètes et « salts » de WordPress dans wp-config.php est une mesure complémentaire sensée (de nouvelles valeurs sont à un clic sur le générateur officiel, et les remplacer déconnecte tous les utilisateurs une fois).

Si vous constatez quelque chose qui vous inquiète, la bonne réponse est de le traiter comme tout autre soupçon d’accès non autorisé. Si aucun de vos formulaires ne comportait de champ de téléversement « accepter tout type de fichier », la mise à jour seule suffit.

Ce que j’ai fait et n’ai pas fait

Pour être parfaitement transparent sur la vérification à l’origine de mon courriel : je n’ai lu que des fichiers que votre site sert déjà à tout visiteur, précisément le readme.txt public de l’extension, votre page d’accueil, et les adresses des ressources inscrites dans cette page. Je n’ai pas accédé à votre espace d’administration WordPress, à votre base de données, ni à aucune 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é ni exploité. Cela compte davantage ici que sur la plupart de ces pages, car téléverser un fichier est précisément l’action que ce problème concerne : « 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 renvoie vers aucun code de démonstration.

Il s’agit d’une observation fondée sur la version : votre site annonce une version dans la plage concernée. Ce n’est pas une affirmation que votre site était exploitable au moment où je l’ai vérifié. Le problème dépendant d’un réglage de formulaire que je ne peux pas voir, un site dans cette plage peut très bien ne pas être exposé du tout, et un site dans cette plage peut par ailleurs être protégé par d’autres moyens, comme 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, transmettez cette page à celle qui s’en charge (votre développeur, votre agence ou votre hébergeur). Ces étapes lui parleront immédiatement.

Si vous maintenez le site vous-même et que vous êtes bloqué, je vous oriente volontiers, gratuitement. Écrivez-moi via les coordonnées ci-dessous.

Contact

Evan Harris, chercheur en sécurité

Je prends contact au sujet de ce genre de problème uniquement pour aider les exploitants à sécuriser leurs sites. Si vous préférez ne plus être contacté, dites-le-moi simplement et je le respecterai.

Références

Avis officiels et suivi

Éditeur / extension