Si vous avez reçu un e-mail de ma part vous renvoyant à cette page, c’est parce que votre site web semble utiliser une version vulnérable de Premium Packages (l’extension WordPress wpdm-premium-packages, un module complémentaire de WordPress Download Manager édité par Shahjada / wpdownloadmanager.com). Cette page explique pourquoi cela compte et comment y remédier.

Cet avis concerne CVE-2026-15348, un contournement d’authentification non authentifié dans le gestionnaire de téléchargement de l’extension, qui pourrait permettre à un visiteur non autorisé de se connecter en tant que client ou autre compte non administrateur de votre boutique. Elle affecte les versions 4.7.0 à 7.0.4 et est corrigée dans la 7.0.5. Si vous utilisez une version concernée, mettez à jour Premium Packages vers 7.0.5 ou une version ultérieure.

Un mot sur l’urgence, car elle se situe entre celles de mes autres avis : ce problème ne nécessite aucune connexion (il est entièrement non authentifié), il vaut donc la peine de mettre à jour rapidement. En même temps, il s’agit d’une faille d’accès aux comptes touchant les titulaires de commandes non administrateurs, et non d’une prise de contrôle du serveur ou d’un compte administrateur complet, et rien n’indique qu’elle soit exploitée (elle ne figure pas dans le catalogue des vulnérabilités exploitées connues, Known Exploited Vulnerabilities, de la CISA, et je n’ai connaissance d’aucun signalement d’exploitation). Cette page est une mise en garde préventive, et non un rapport d’incident. La mise à jour comble la faille, et aucune intervention d’urgence n’est nécessaire.

Il s’agit d’une faille d’une extension, et non du noyau de WordPress. Un WordPress parfaitement à jour ne vous protège pas si l’extension Premium Packages elle-même est sur une version concernée.

Ce message est-il légitime ?

Oui. Il s’agit d’un avis de bonne foi, selon le principe de la divulgation responsable, émanant d’un chercheur en sécurité indépendant. Je ne vous demande pas d’argent, de mots de passe ni d’accès à votre site, et je n’ai pas tenté de m’y introduire, de téléverser quoi que ce soit ni d’exploiter quoi que ce soit.

Je n’ai fait que consulter des fichiers publiquement visibles que votre site web fournit à chaque visiteur (de la même manière que votre page d’accueil est publique) et noter le numéro de version que l’extension Premium Packages publie dans son fichier readme.txt public. Je n’ai spécifiquement pas touché au point d’accès vulnérable, et rien dans cette vérification ne touche à vos données, à votre zone 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, consultez les coordonnées au bas de cette page et la page À propos.

Pourquoi cela compte

Premium Packages est un module complémentaire de WordPress Download Manager (environ 2 000 installations actives) qui permet à un site de vendre des produits numériques et des téléchargements. Dans les versions concernées, le gestionnaire download() de l’extension s’exécute sur une requête non authentifiée. Il décode un paramètre d’URL contrôlé par l’attaquant (wpdmppdl) qui est seulement encodé en base64, sans signature ni nonce pour prouver que la requête est authentique, puis délivre des cookies de connexion WordPress après une vérification de « domaine » dont les deux côtés sont fournis par l’attaquant (la vérification est donc trivialement satisfaite). Cette catégorie d’erreur est un contournement d’authentification : un chemin détourné distribue une session connectée sans jamais vérifier qui en fait la demande.

L’effet pratique est qu’un visiteur non authentifié pourrait se connecter en tant que n’importe quel utilisateur non administrateur titulaire d’une commande sur la boutique : un compte client, abonné, auteur, éditeur ou gestionnaire de boutique. Pour être clair sur la limite de tout cela : cela n’accorde pas d’accès administrateur, et cela ne livre pas à lui seul votre serveur à un attaquant. Il s’agit d’une prise de contrôle des comptes des titulaires de commandes non administrateurs.

Le problème n’a pas reçu de score CVSS de la part de l’autorité chargée de l’attribution, je ne lui attacherai donc pas de chiffre ; qualitativement, il est grave car il ne nécessite aucune connexion, mais borné car l’accès qu’il procure est non administrateur. Si mon e-mail a cité ce problème, cela signifie que la version signalée par votre site entre dans la plage concernée. Je n’ai pas testé si votre site en particulier est exploitable, seulement qu’il signale une version concernée.

La bonne nouvelle : la mise à jour vers la version corrigée comble la faille, et la mise à jour est simple.

Suis-je concerné ? Comment vérifier votre version

C’est la seule partie de cet avis qui diffère des autres que j’envoie, car les champs de version publics de cette extension ne sont pas fiables, il vaut donc la peine de la lire attentivement.

La vérification qui fait autorité est la zone d’administration WordPress. Elle affiche la véritable version installée :

  1. Connectez-vous à votre tableau de bord WordPress (généralement à l’adresse yourdomain.com/wp-admin).
  2. Allez dans Extensions puis Extensions installées.
  3. Recherchez Premium Packages et notez la version affichée sous son nom.

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

  • Toute version antérieure à 7.0.5 : concernée, mettez à jour maintenant.
  • 7.0.5 ou plus récente : déjà corrigée.

Pourquoi ne pas simplement lire les fichiers publics ? Parce que, pour cette extension, ils peuvent vous induire en erreur :

  • La ligne « Stable tag: » du fichier readme.txt public de l’extension est en retard sur son propre code. Un site qui exécute la dernière version vulnérable (7.0.4) publie Stable tag: 7.0.3, par exemple. Le readme public n’est donc un signal fiable de « corrigé » que lorsqu’il indique 7.0.5 ou plus. Un numéro inférieur ne vous indique pas de manière fiable votre version exacte ; considérez tout ce qui est antérieur à 7.0.5 comme « à vérifier dans wp-admin et à mettre à jour ».
  • Ne jugez pas votre version d’après le numéro ?ver= figurant sur les URL des scripts ou des styles de l’extension. L’extension a figé sa constante de version interne à 7.0.4 dans la version de sécurité 7.0.5, si bien qu’un site 7.0.5 corrigé sert toujours des ressources étiquetées ?ver=7.0.4 ; et le ?ver= du fichier CSS est en réalité la version du noyau de WordPress, et non celle de l’extension. Aucun des deux ne reflète la véritable version de l’extension. Utilisez wp-admin.

Comment mettre à jour

La voie la plus sûre consiste à effectuer la mise à jour via WordPress lui-même, et à réaliser une sauvegarde au préalable :

  1. 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 utilisez une extension de sauvegarde WordPress.
  2. Dans l’administration WordPress, allez dans Tableau de bord puis Mises à jour, ou Extensions puis Extensions installées. Si une mise à jour de Premium Packages est répertoriée, installez-la à partir d’ici.
  3. Si vous préférez la ligne de commande, WP-CLI fait la même chose : wp plugin update wpdm-premium-packages.
  4. Si aucune mise à jour n’apparaît, vous pouvez obtenir la dernière version directement depuis la page de l’extension sur l’annuaire WordPress.org, Premium Packages, 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 (7.0.5 ou ultérieure) dans Extensions puis Extensions installées en suivant les étapes ci-dessus, et vérifiez que vos téléchargements et les fonctionnalités de votre boutique fonctionnent normalement.

Tant que vous y êtes, il vaut la peine de confirmer que le noyau de WordPress, WordPress Download Manager et vos autres extensions sont à jour, car le même principe s’applique à tous.

Après la mise à jour

La mise à jour vers 7.0.5 ou une version ultérieure comble la faille, et pour la plupart des sites, c’est là toute la tâche. Rien n’indique que cette faille ait été exploitée, donc aucune intervention d’urgence n’est nécessaire : vous n’avez pas besoin de considérer votre site comme compromis, de le mettre hors ligne ni de forcer des réinitialisations de mot de passe.

Comme la faille pourrait permettre à un visiteur non autorisé d’agir sur un compte client ou un autre compte non administrateur, un suivi de routine est judicieux : jetez un œil à l’activité récente des comptes clients et des commandes à la recherche de tout élément inhabituel, par exemple des commandes ou des modifications de compte qu’un client n’a pas effectuées, ou des connexions qui ne correspondent pas à une activité normale. Considérez cela comme un entretien ordinaire, du type de celui qu’une boutique effectue périodiquement, et non comme une réponse à incident. Si quelque chose semble effectivement anormal, les étapes habituelles s’appliquent (réinitialisez le mot de passe de ce compte et examinez l’activité avec le client), et n’hésitez pas à me contacter pour toute question.

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

Pour être pleinement transparent sur la vérification derrière mon e-mail : je n’ai lu que des fichiers publics que votre site fournit déjà à chaque visiteur, en l’occurrence le fichier readme.txt public de l’extension et votre page d’accueil. Je n’ai pas accédé à votre zone d’administration WordPress, à votre base de données ni à aucune partie privée du site. En particulier, je n’ai pas touché au point d’accès vulnérable, et je n’ai rien testé ni exploité.

Il s’agit d’une observation fondée sur la version : votre site signale une version dans la plage concernée. Un site situé dans cette plage peut déjà être protégé par d’autres moyens (par exemple un pare-feu applicatif web, ou un correctif rétroporté), donc cet avis n’est pas une affirmation que votre site était exploitable au moment de ma vérification.

Je n’ai pas de webmaster / je suis bloqué

Si vous n’êtes pas la personne qui gère le site, veuillez transférer cette page à celle qui s’en charge (votre développeur web, votre agence ou votre hébergeur). Elle reconnaîtra rapidement les étapes ci-dessus.

Si vous gérez le site vous-même et que vous êtes bloqué, je me ferai un plaisir de vous aiguiller dans la bonne direction, sans frais. Contactez-moi à l’aide des coordonnées ci-dessous.

Contact

Evan Harris, chercheur en sécurité

Je contacte les exploitants au sujet de problèmes comme celui-ci uniquement pour les aider à sécuriser leurs sites. Si vous préférez ne plus être contacté, faites-le-moi simplement savoir et je le respecterai.

Références

Avis officiels et suivi

Éditeur / extension