Vulnérabilité critique détectée dans WooCommerce le 13 juillet 2021 - Ce que vous devez savoir

Publié: 2021-07-15

Dernière mise à jour : 23 juillet 2021

Le 13 juillet 2021, une vulnérabilité critique concernant WooCommerce et le plugin de fonctionnalité WooCommerce Blocks a été identifiée et divulguée de manière responsable par le chercheur en sécurité Josh, via notre programme de sécurité HackerOne.

Après avoir pris connaissance du problème, notre équipe a immédiatement mené une enquête approfondie, audité toutes les bases de code associées et créé un correctif pour résoudre le problème pour chaque version concernée (plus de 90 versions) qui a été déployée automatiquement dans les magasins vulnérables.

J'ai une boutique WooCommerce - que dois-je faire ?

Les mises à jour logicielles automatiques de WooCommerce 5.5.1 ont commencé à être déployées le 14 juillet 2021 dans tous les magasins exécutant des versions concernées de chaque plug-in, mais nous vous recommandons vivement de vous assurer que vous utilisez la dernière version. Pour WooCommerce, il s'agit de 5.5.2 * ou du nombre le plus élevé possible dans votre branche de version. Si vous utilisez également WooCommerce Blocks, vous devez utiliser la version 5.5.1 de ce plugin.

Important : Avec la sortie de WooCommerce 5.5.2 le 23 juillet 2021, le processus de mise à jour automatique mentionné ci-dessus a été interrompu.

Après la mise à jour vers une version corrigée, nous recommandons également :

  • Mettre à jour les mots de passe de tous les utilisateurs administrateurs de votre site, en particulier s'ils réutilisent les mêmes mots de passe sur plusieurs sites Web
  • Rotation de toutes les clés API Payment Gateway et WooCommerce utilisées sur votre site.

Vous trouverez plus d'informations sur ces étapes ci-dessous.

* WooCommerce 5.5.2 est sorti le 23 juillet 2021. Les correctifs contenus dans cette version ne sont pas liés à la récente vulnérabilité de sécurité.

Comment savoir si ma version est à jour ?

Le tableau ci-dessous contient la liste complète des versions corrigées pour WooCommerce et WooCommerce Blocks. Si vous utilisez une version de WooCommerce ou WooCommerce Blocks qui ne figure pas sur cette liste, veuillez mettre à jour immédiatement vers la version la plus élevée de votre branche de publication.

Versions corrigées de WooCommerce Versions corrigées des blocs WooCommerce
3.3.6 2.5.16
3.4.8 2.6.2
3.5.9 2.7.2
3.6.6 2.8.1
3.7.2 2.9.1
3.8.2 3.0.1
3.9.4 3.1.1
4.0.2 3.2.1
4.1.2 3.3.1
4.2.3 3.4.1
4.3.4 3.5.1
4.4.2 3.6.1
4.5.3 3.7.2
4.6.3 3.8.1
4.7.2 3.9.1
4.8.1 4.0.1
4.9.3 4.1.1
5.0.1 4.2.1
5.1.1 4.3.1
5.2.3 4.4.3
5.3.1 4.5.3
5.4.2 4.6.1
5.5.1 4.7.1
5.5.2 4.8.1
4.9.2
5.0.1
5.1.1
5.2.1
5.3.2
5.4.1
5.5.1

Pourquoi mon site Web n'a-t-il pas reçu la mise à jour automatique ?

Votre site n'a peut-être pas été mis à jour automatiquement pour un certain nombre de raisons, parmi lesquelles les plus probables : vous utilisez une version antérieure à celle affectée (inférieure à WooCommerce 3.3), les mises à jour automatiques ont été explicitement désactivées sur votre site, votre système de fichiers est en lecture seule, ou il existe des extensions potentiellement conflictuelles empêchant la mise à jour.

Dans tous les cas (sauf le premier exemple, où vous n'êtes pas affecté), vous devez essayer de mettre à jour manuellement la version corrigée la plus récente sur votre branche de publication (par exemple, 5.5.2, 5.4.2, 5.3.1, etc.), comme indiqué dans le tableau ci-dessus.

Des données ont-elles été compromises ?

Sur la base des preuves actuellement disponibles, nous pensons que tout exploit était limité.

Si un magasin a été affecté, les informations exposées seront spécifiques à ce que ce site stocke, mais pourraient inclure des informations sur les commandes, les clients et les informations administratives.

Comment puis-je vérifier si ma boutique a été exploitée ?

En raison de la nature de cette vulnérabilité et de la manière extrêmement flexible dont WordPress (et donc WooCommerce) permet de traiter les requêtes Web, il n'existe aucun moyen définitif de confirmer un exploit. Vous pourrez peut-être détecter certaines tentatives d'exploitation en consultant les journaux d'accès de votre serveur Web (ou en obtenant l'aide de votre hébergeur pour le faire). Les demandes dans les formats suivants observées entre décembre 2019 et aujourd'hui indiquent probablement une tentative d'exploitation :

  • REQUEST_URI correspondant à l'expression régulière /\/wp-json\/wc\/store\/products\/collection-data.*%25252.*/
  • REQUEST_URI correspondant à l'expression régulière /.*\/wc\/store\/products\/collection-data.*%25252.*/ (notez que cette expression n'est pas efficace/est lente à s'exécuter dans la plupart des environnements de journalisation)
  • Toute demande non-GET (POST ou PUT) à /wp-json/wc/store/products/collection-data ou /?rest_route=/wc/store/products/collection-data

Les requêtes que nous avons vues exploiter cette vulnérabilité proviennent des adresses IP suivantes, avec plus de 98 % provenant de la première de la liste. Si vous voyez l'une de ces adresses IP dans vos journaux d'accès, vous devez supposer que la vulnérabilité a été exploitée :

  • 137.116.119.175
  • 162.158.78.41
  • 103.233.135.21

Quels mots de passe dois-je changer ?

Il est peu probable que votre mot de passe ait été compromis car il est haché.

Les mots de passe des utilisateurs de WordPress sont hachés à l'aide de sels, ce qui signifie que la valeur de hachage résultante est très difficile à déchiffrer. Cette approche de hachage salé protège votre mot de passe en tant qu'utilisateur administrateur, ainsi que les mots de passe de tous les autres utilisateurs de votre site, y compris les clients. Bien qu'il soit possible que la version hachée de votre mot de passe stockée dans votre base de données ait été accessible via cette vulnérabilité, la valeur de hachage doit être indiscernable et toujours protéger vos mots de passe contre toute utilisation non autorisée.

Cela suppose que votre site utilise la gestion de mot de passe WordPress standard pour les utilisateurs. Selon les plugins que vous avez installés sur votre site, vous pouvez avoir des mots de passe ou d'autres informations sensibles stockées de manière moins sécurisée.

Si l'un des utilisateurs administrateur de votre site peut avoir réutilisé les mêmes mots de passe sur plusieurs sites Web, nous vous recommandons de mettre à jour ces mots de passe au cas où leurs informations d'identification auraient été compromises ailleurs.

Nous vous recommandons également de modifier toutes les données privées ou secrètes stockées dans votre base de données WordPress/WooCommerce. Cela peut inclure des clés API, des clés publiques/privées pour les passerelles de paiement et plus encore, selon la configuration particulière de votre boutique.

En tant que développeur d'extensions ou fournisseur de services, devons-nous alerter nos marchands WooCommerce ?

Si vous travaillez avec une boutique ou un marchand WooCommerce en direct, nous vous encourageons à travailler avec eux pour vous assurer qu'ils sont au courant de ce problème et/ou mettre à jour leur boutique vers une version sécurisée.

Si vous avez construit une extension ou proposez un service SaaS qui s'appuie sur l'API WooCommerce, nous vous encourageons à aider les marchands à réinitialiser les clés pour se connecter à votre service.

En tant que propriétaire de magasin, dois-je alerter mes clients ?

Que vous alertiez vos clients dépend en fin de compte de vous. Vos obligations d'informer les clients ou de réinitialiser des éléments tels que les mots de passe varient en fonction de détails tels que l'infrastructure de votre site, l'endroit où vous et vos clients vous trouvez géographiquement, les données que votre site collecte et si votre site a été compromis ou non.

La mesure la plus importante que vous puissiez prendre pour protéger vos clients est de mettre à jour votre version de WooCommerce vers une version qui a été corrigée avec un correctif pour cette vulnérabilité.

Après la mise à jour, nous recommandons :

  • Mettre à jour les mots de passe de tous les utilisateurs administrateurs de votre site, en particulier si vous réutilisez les mêmes mots de passe sur plusieurs sites Web
  • Rotation de toutes les clés API Payment Gateway et WooCommerce utilisées sur votre site.

En tant que propriétaire du magasin, c'est à vous de décider si vous souhaitez prendre des précautions supplémentaires telles que la réinitialisation des mots de passe de vos clients. Les mots de passe des utilisateurs de WordPress (et donc de WooCommerce) sont hachés à l'aide de sels, ce qui signifie que la valeur de hachage résultante est très difficile à déchiffrer. Cette approche de hachage salé est appliquée à tous les mots de passe des utilisateurs de votre site, y compris les mots de passe de vos clients.

WooCommerce est-il toujours sûr à utiliser ?

Oui.

Des incidents comme celui-ci sont rares, mais se produisent malheureusement parfois. Notre intention est toujours de répondre immédiatement et d'agir en toute transparence.

Depuis qu'elle a appris la vulnérabilité, l'équipe a travaillé 24 heures sur 24 pour s'assurer qu'un correctif a été mis en place et nos utilisateurs ont été informés.

Notre investissement continu dans la sécurité de la plate-forme nous permet d'éviter la grande majorité des problèmes - mais dans les rares cas qui pourraient potentiellement avoir un impact sur les magasins, nous nous efforçons de résoudre rapidement, de communiquer de manière proactive et de travailler en collaboration avec la communauté WooCommerce.

Et si j'ai encore des questions ?

Si vous avez d'autres préoccupations ou questions concernant ce problème, notre équipe d'ingénieurs du bonheur est à votre disposition pour vous aider - ouvrez un ticket d'assistance.