
| Nom du plugin | @turbo/workspaces |
|---|---|
| Type de vulnérabilité | Exécution de code à distance |
| Numéro CVE | CVE-2026-45772 |
| Urgence | Haut |
| Date de publication du CVE | 2026-05-20 |
| URL source | CVE-2026-45772 |
NPM : Turbo ( @turbo/workspaces ) — Exécution de code local inattendue lors de la détection de Yarn Berry (CVE-2026-45772)
Un guide d'expert pour les propriétaires de sites WordPress, les développeurs et les hébergeurs
TL;DR
- Une vulnérabilité de chaîne d'approvisionnement de haute gravité (CVE-2026-45772 / GHSA-3qcw-2rhx-2726) affectant le package NPM @turbo/workspaces (outils Turbo / Turborepo) peut entraîner une exécution de code local inattendue lors de la détection des environnements Yarn Berry (Yarn 2+).
- Versions affectées : >= 2.3.4, < 2.9.14 — corrigé dans 2.9.14.
- Impact sur WordPress : bien qu'il s'agisse d'un problème de l'écosystème npm (pas d'un bug de plugin WordPress), les sites WordPress peuvent être exposés via des pipelines de développement, de construction et de déploiement, CI/CD, constructions côté hébergement, et tout environnement qui exécute des outils node sur des serveurs ayant accès aux actifs de production, aux identifiants ou aux hooks de déploiement.
- Actions immédiates : mettez à jour @turbo/workspaces vers 2.9.14 ou une version ultérieure dans tous les endroits (développement local, CI, images de construction), verrouillez/épinglez les dépendances, auditez les pipelines et les magasins d'artefacts, faites tourner les secrets si les machines CI ou de construction ne sont pas de confiance, et scannez vos dépôts et serveurs à la recherche de signes de compromission.
- WP-Firewall peut aider à détecter et atténuer les comportements post-exploitation sur les sites WordPress (WAF géré, scanner de malware, patching virtuel et surveillance). Voir les détails et une offre de plan gratuit ci-dessous.
Pourquoi une vulnérabilité de package Node est importante pour WordPress
La plupart des utilisateurs de WordPress pensent à PHP, aux plugins et aux thèmes lorsqu'ils considèrent la sécurité. Mais le développement et les opérations modernes de WordPress incluent souvent des outils Node.js :
- Les processus de construction de thèmes et de plugins utilisent Node (npm/yarn) pour regrouper les actifs JS/CSS.
- Les constructions statiques, les sites WordPress sans tête et les actifs de l'éditeur de blocs dépendent de npm.
- Les pipelines CI/CD exécutent souvent npm/yarn sur des runners de construction ayant accès aux identifiants de déploiement.
- Certains hébergeurs et plateformes de déploiement gérées exécutent des étapes de construction sur leur infrastructure.
Une vulnérabilité qui permet l'exécution de code local dans un outil de développement largement utilisé peut donc être exploitée pour implanter des malwares dans les constructions, extraire des secrets des environnements de construction, ou effectuer un mouvement latéral vers les systèmes de production. La gravité est amplifiée lorsque les agents de construction ont accès aux identifiants de production, aux clés SSH ou aux tokens de déploiement automatisés.
Ce qu'est la vulnérabilité (langage simple)
La vulnérabilité se trouve dans le @turbo/workspaces package NPM et se produit lors de la détection automatique des environnements Yarn Berry (Yarn v2+). Pendant cette routine de détection, du code non fiable ou malveillant peut être exécuté localement sur la machine qui exécute la détection — par exemple, un ordinateur portable de développeur, un runner CI, ou un serveur de construction côté hébergement.
Parce que cela se produit avant les véritables vérifications de temps de construction ou le sandboxing dans de nombreuses configurations, cela peut être exploité pour :
- Exécuter des commandes locales arbitraires.
- Modifier des fichiers (y compris les fichiers source, les fichiers de verrouillage, les artefacts construits).
- Voler des secrets auxquels l'agent de construction peut accéder.
- Persister une porte dérobée dans les artefacts générés qui sont ensuite déployés sur des sites WordPress en production.
La vulnérabilité a été notée très hautement (CVSS 9.8) car elle peut être déclenchée par une activité réseau, ne nécessite aucun privilège, est de faible complexité à déclencher et pourrait conduire à un compromis à distance à grande échelle si les attaquants modifient des paquets ou le registre.
Identifiants de référence : CVE-2026-45772, GHSA-3qcw-2rhx-2726. Corrigé dans @turbo/workspaces 2.9.14.
Qui devrait être le plus concerné
- Développeurs de thèmes et de plugins qui exécutent npm/yarn localement et dans CI.
- Ingénieurs DevOps et de plateforme gérant des exécuteurs de construction ou des dépôts d'artefacts.
- Hébergeurs WordPress gérés qui effectuent des processus de construction au nom des clients.
- Agences qui maintiennent des pipelines CI/CD pour de nombreux sites clients.
- Propriétaires de sites qui permettent l'accès tiers aux dépôts ou aux jetons de déploiement.
Même si votre site WordPress en production n'exécute pas Node directement, votre pipeline de construction pourrait produire un artefact (JS/CSS) ou un installateur (zip) qui inclut du code malveillant injecté pendant le temps de construction. Cet artefact est ce qui est finalement déployé sur le site — et un WAF ou un scanner qui ne vérifie que les fichiers PHP WordPress en cours d'exécution pourrait manquer des JS habilement intégrés ou des portes dérobées ajoutées au moment de la construction.
Scénarios d'attaque — comment cela pourrait être abusé en pratique
- Dépendance transitive compromise ou détournement de registre
Un attaquant plante du code malveillant dans un paquet qui est tiré comme une dépendance transitive. Lorsque@turbo/workspacesexécute la logique de détection Yarn sur un exécuteur CI, cette charge utile malveillante s'exécute localement et modifie les artefacts de construction avant le déploiement. - Paquet malveillant dans un monorepo
Dans un monorepo utilisant turborepo, un développeur malveillant (ou un compte compromis) introduit un paquet qui exploite la routine de détection. Pendant CI, le code s'exécute et exfiltre des secrets ou écrit une porte dérobée dans des actifs destinés à un site WordPress. - Compromission d'exécuteur CI public
Du code non autorisé s'exécute sur des exécuteurs partagés avec un accès large (dépôts d'artefacts, identifiants Docker hub, clés de déploiement). L'attaquant utilise l'exécution de code local pour voler des jetons et déclencher des déploiements contenant l'artefact malveillant. - Constructions côté hôte
Certains hôtes exécutent des étapes de construction sur leur infrastructure lorsqu'un utilisateur pousse un changement. Si le processus de construction côté hôte s'exécute@turbo/workspacesLa logique de détection de manière non sécurisée, l'environnement hôte (et tous les sites de locataires) peuvent être exposés. - Compromission de la machine de développement menant à une attaque de la chaîne d'approvisionnement
Un ordinateur portable de développeur est utilisé pour effectuer des builds et publier des artefacts. L'exécution de code local est utilisée pour valider ou publier des paquets avec des charges utiles cachées qui infectent ensuite les artefacts officiels.
Cause racine technique (niveau élevé, non exhaustif)
La vulnérabilité se concentre sur la routine de détection pour Yarn Berry. Lorsque le paquet essaie de déterminer si Yarn Berry est utilisé, sa logique de détection peut exécuter du code non fiable ou suivre des fichiers non fiables de manière à permettre l'exécution de code arbitraire dans l'environnement local. Les détails exacts sont des détails d'implémentation dans le paquet ; l'effet pratique est que des entrées non fiables ou des contenus de paquet peuvent provoquer l'exécution de code sur le runner de détection.
Parce que la détection se produit tôt dans de nombreux workflows de build et souvent sous les mêmes privilèges que d'autres étapes de build, la surface d'attaque est significative.
Évaluation des risques pour les environnements WordPress
- CVSS : 9.8 (gravité critique/élevée)
- Privilège requis : Aucun (l'attaquant peut déclencher via le réseau ou la chaîne d'approvisionnement)
- Complexité : Faible (le processus de build typique déclenche la détection)
- Impact : Exécution de code à distance sur l'agent de build, potentiel de large compromission de la chaîne d'approvisionnement
Pour un site WordPress, le véritable vecteur de risque n'est pas le code PHP d'exécution lui-même, mais l'intégrité des actifs et des artefacts de déploiement. Un processus de build compromis peut insérer des portes dérobées dans le code distribué, cacher du JS malveillant dans des thèmes/plugins, ou modifier des scripts de déploiement afin que les environnements de production soient ensuite ciblés.
Actions immédiates (que faire aujourd'hui)
- Mettre à jour @turbo/workspaces à 2.9.14 ou version ultérieure où qu'il soit utilisé — machines de développement locales, images Docker, images de build CI, et toute infrastructure de build côté serveur.
- Dans package.json ou les outils de monorepo, augmentez la version ou exécutez la commande de mise à jour de votre gestionnaire de dépendances.
- Verrouillez vos dépendances afin que les installations transitoires soient reproductibles :
- Assurez-vous que les fichiers de verrouillage (yarn.lock / package-lock.json) sont engagés et utilisés par CI.
- Utiliser
npm ciouyarn --frozen-lockfiledans CI pour garantir l'intégrité du fichier de verrouillage.
- Reconstruire et redéployer les actifs après la mise à jour des dépendances.
- Inspecter les artefacts de construction et les dépôts pour des changements inattendus :
- Vérifier les fichiers nouveaux ou modifiés, les scripts inattendus dans package.json, ou les fichiers écrits pendant les étapes de construction.
- Auditer les secrets et les jetons CI/CD utilisés par les exécuteurs de construction :
- Faire tourner les identifiants utilisés par les exécuteurs ou les services qui ont pu être exposés.
- Scannez à la recherche de signes de compromission:
- Exécuter des analyseurs de logiciels malveillants sur les dépôts, les serveurs et les actifs publiés.
- Vérifier les connexions sortantes suspectes des serveurs de construction.
- Renforcer les environnements de construction:
- Utiliser des exécuteurs de construction éphémères et des images immuables.
- Restreindre l'accès réseau et la portée des identifiants.
- Informez votre équipe et effectuer un examen d'incident ciblé s'il y a des preuves d'activité inhabituelle.
Liste de contrôle de durcissement pour les développeurs et CI/CD
- Toujours exécuter des constructions dans des environnements éphémères et isolés (exécuteurs conteneurisés, VMs éphémères).
- Limiter la portée des identifiants dans les environnements de construction (jetons de moindre privilège ; séparer les jetons de déploiement du stockage des artefacts).
- Utiliser le verrouillage des images de conteneur et des images de base reproductibles pour les images de construction.
- Assurer la vérification du fichier de verrouillage (npm ci / yarn –frozen-lockfile), et activer les vérifications d'intégrité.
- Utilisez la signature de package, la vérification de somme de contrôle ou des registres privés lorsque cela est possible.
- Vérifiez toutes les dépendances transitives et envisagez de scanner les dépendances adoptées : signalez les nouveaux packages ou les packages inhabituels ajoutés dans les PR.
- Appliquez une politique stricte pour la publication de packages et la fusion des modifications de dépendance ; exigez une révision de code pour les modifications de package.json.
- Utilisez une liste de matériaux logiciels (SBOM) pour les builds et la transparence de la chaîne d'approvisionnement.
- Exécutez une analyse statique et une SCA (analyse de composition logicielle) dans le cadre des pipelines PR et CI.
- Restreignez l'environnement d'exécution des processus de build (pas d'accès aux identifiants de base de données de production, clés SSH ou clés de déploiement sauf si strictement nécessaire).
- Supprimez node_modules ou les artefacts de build des dépôts de code avant le déploiement s'ils ne sont pas nécessaires pour l'exécution.
Comment détecter l'exploitation et quoi rechercher
Si vous craignez qu'un agent de build ou un pipeline ait été exploité, vérifiez ce qui suit :
- Modifications inattendues des actifs construits (fichiers JS, bundles minifiés, cartes sources) contenant du code obfusqué ou inconnu.
- Scripts nouvellement ajoutés ou modifiés dans package.json non approuvés par les développeurs.
- Connexions sortantes des serveurs CI/build vers des points de terminaison inconnus pendant le temps de build.
- Nouveaux commits ou tags créés par des agents CI ou des utilisateurs inconnus.
- Événements npm publish inattendus provenant de vos comptes ou de tokens CI.
- Journaux d'accès des points de terminaison de déploiement montrant des déploiements inattendus en dehors des opérations programmées.
- Une augmentation inhabituelle des builds échoués ou des artefacts de build inexpliqués.
Pour les serveurs WordPress, scannez également pour :
- JavaScript nouvellement introduit dans la zone thème/footer, publicités injectées ou skimmers de cartes de crédit.
- Backdoors PHP déguisées en fichiers inoffensifs (recherchez des fichiers avec des noms étranges ou des horodatages de dernière modification inhabituels).
- Fichiers de cœur modifiés ou fichiers de plugin/thème qui ne correspondent pas aux sommes de contrôle attendues.
Contention et remédiation si vous trouvez des indicateurs.
- Isoler les machines impactées : mettre le CI runner ou le serveur de construction hors ligne.
- Révoquer et faire tourner tous les secrets utilisés par les agents de construction (clés API, clés de déploiement, jetons).
- Reconstruire les artefacts dans un environnement propre et corrigé après la mise à jour des dépendances.
- Remplacer les artefacts sur les serveurs par des versions fraîches et vérifiées.
- Si un dépôt de plugin/thème publié est affecté, enquêter sur les versions publiées pendant la période de compromission et envisager de revenir en arrière ou de republier à partir d'une source propre.
- Effectuer un examen complet du code et de la configuration pour détecter les changements suspects introduits pendant la période suspecte.
- Informer les clients ou parties prenantes affectés selon votre plan de réponse aux incidents et vos obligations réglementaires.
- Si un attaquant a probablement accédé aux systèmes de production, suivre la réponse complète aux incidents : analyses judiciaires, rotation des identifiants à long terme, et éventuellement aide à la réponse aux incidents par des tiers.
Limitations des pare-feu réseau et des WAF pour les problèmes de chaîne d'approvisionnement
Un pare-feu d'application Web (WAF) et un pare-feu réseau sont essentiels pour défendre un site WordPress en direct contre les attaques basées sur le web, les tentatives d'injection et le trafic malveillant. Cependant, les WAF ont une capacité limitée à prévenir les compromissions de chaîne d'approvisionnement ou de temps de construction car :
- Le code malveillant peut être injecté avant le déploiement — un WAF ne peut pas bloquer quelque chose qui fait déjà partie des fichiers déployés.
- Les compromissions de temps de construction se produisent souvent dans des environnements que le WAF ne voit pas (ordinateurs portables des développeurs, CI runners, systèmes de construction côté hôte).
- La détection de charges utiles obfusquées ou nouvelles nécessite un scan comportemental, des mises à jour de signatures et une surveillance de l'intégrité des fichiers — tous les WAF ne peuvent pas détecter de manière fiable ces éléments dans des actifs statiques.
Cela dit, les WAF restent précieux en tant que dernier filet de sécurité : ils peuvent détecter et bloquer des modèles d'exploitation courants, prévenir les tentatives d'exfiltration et alerter lorsque des comportements anormaux se produisent sur le site en direct. Combinez le WAF avec les mesures de durcissement du pipeline décrites précédemment — la défense en profondeur est la seule stratégie fiable.
Comment WP-Firewall aide à protéger les sites WordPress (ce que nous fournissons)
En tant que fournisseur de sécurité WordPress axé sur la protection des sites et l'atténuation des incidents, WP-Firewall propose une approche en couches pour aider à limiter les dommages causés par ce type d'incident de chaîne d'approvisionnement :
- Règles WAF gérées qui bloquent les vecteurs d'attaque web courants et détectent les comportements d'exploitation suspects contre votre site en direct.
- Analyse de logiciels malveillants qui recherche des JavaScript injectés, des modèles de code de porte dérobée et des fichiers anormaux dans les thèmes/plugins.
- Surveillance en temps réel de l'intégrité des fichiers qui peut alerter sur des changements de fichiers inattendus dans votre système de fichiers WordPress.
- Patching virtuel pour certains modèles d'attaque (atténuation rapide lorsqu'un nouvel exploit est observé dans la nature).
- Atténuation automatisée des risques OWASP Top 10, ce qui réduit la chance que le code injecté puisse être utilisé pour exploiter d'autres vulnérabilités sur le site.
- Pour les plans payants, correctifs virtuels automatiques des vulnérabilités et rapports de sécurité mensuels pour vous tenir informé de l'état des risques et des remédiations.
Important: WP-Firewall ne peut pas remplacer une bonne hygiène de développement. Nos fonctionnalités sont destinées à atténuer et détecter les problèmes post-déploiement, et à soutenir la récupération — les étapes de durcissement de la chaîne d'approvisionnement et de CI/CD décrites précédemment sont des compléments essentiels.
Pratiques de chaîne d'approvisionnement à long terme que chaque organisation WordPress devrait adopter
- Maintenir un registre des matériaux logiciels (SBOM) pour tous les processus de construction.
- Utiliser des images de construction minimales et immuables pour CI qui incluent uniquement les outils nécessaires pour compiler les actifs.
- Préférer les registres privés pour les paquets critiques et utiliser des listes d'autorisation pour les dépendances.
- Mettre en œuvre des attestations pour les artefacts de construction (signature des artefacts et vérification des signatures lors du déploiement).
- Exécuter des constructions reproductibles lorsque cela est possible afin que les artefacts construits dans un exécuteur compromis puissent être comparés à une sortie de construction de confiance.
- Établir une politique de révision des dépendances et d'alerte pour les changements de dépendances dans les PR.
- Mettre en œuvre le principe du moindre privilège pour les jetons CI et les faire tourner régulièrement.
- Garder les outils de développement à jour et imposer des mises à jour régulières des dépendances avec des tests et des déploiements progressifs.
Commandes pratiques et ajouts CI (exemples)
- Utiliser des installations de fichier de verrouillage gelé pour éviter les changements inattendus :
- npm :
npm ci - yarn :
yarn install --frozen-lockfile
- npm :
- Dans CI, ajouter une étape de scan SCA :
- Exécutez
npm auditou utiliser un outil SCA pour signaler les vulnérabilités connues tôt.
- Exécutez
- Imposer des fichiers de verrouillage dans CI :
- Vérifiez que
yarn.lockoupackage-lock.jsoncorrespond aux versions du dépôt avant la construction et échoue les constructions en cas de désaccord.
- Vérifiez que
- Utilisez des runners éphémères et effacez les caches après les constructions pour réduire la surface d'attaque persistante.
Note: Les commandes exactes et la configuration CI dépendent de votre fournisseur CI et de votre stack. Le principe est de rendre les constructions répétables et vérifiables.
Exemple de playbook d'incidents (niveau élevé)
- Patch : mettez à niveau @turbo/workspaces à >= 2.9.14 dans tous les codebases et images.
- Vérifiez : exécutez des constructions propres en utilisant des versions d'outils patchées et comparez les artefacts.
- Quarantaine : mettez hors ligne les runners de construction suspects et collectez les journaux.
- Rotation : régénérez immédiatement les secrets CI et de déploiement là où une exposition est suspectée.
- Redéployez : déployez des artefacts vérifiés provenant de constructions propres.
- Surveillez : augmentez la journalisation et la surveillance sur le site et CI pendant 30 jours après l'incident.
- Rapport : documentez la chronologie de l'incident et les actions pour la conformité et la responsabilité.
Indicateurs de détection (liste de contrôle rapide pour les audits)
- Activité npm/yarn inattendue dans les journaux CI non liée aux constructions typiques.
- Nouveaux packages installés au moment de la construction qui n'étaient pas dans les fichiers de verrouillage.
- Les actifs empaquetés contiennent des appels réseau inattendus ou des charges utiles obfusquées.
- Les machines de construction initient des connexions sortantes vers des domaines inconnus ou suspects.
- Modifications de fichiers inhabituelles sur le serveur web peu après les déploiements.
Si vous êtes propriétaire d'un site WordPress et que vous ne savez pas quoi faire en ce moment
- Assurez-vous que vos développeurs et systèmes CI ont appliqué le patch (2.9.14+).
- Demandez à votre fournisseur d'hébergement s'il effectue des étapes de construction en votre nom ; si oui, confirmez qu'il a patché ses images de construction.
- Si vous utilisez une agence ou un développeur tiers, confirmez qu'ils ont mis à jour les environnements locaux et CI.
- Scannez votre site avec un scanner de malware complet et effectuez une vérification de l'intégrité des fichiers — si vous avez WP-Firewall, exécutez le scanner de malware et la détection de changements de fichiers.
- Conservez des sauvegardes et assurez-vous de pouvoir restaurer à un état propre si nécessaire.
Renforcez les défenses de manière proactive (politiques recommandées)
- Exigez que tous les pipelines de déploiement en production s'exécutent dans des environnements éphémères isolés.
- Mandatez l'application des fichiers de verrouillage et les vérifications SCA automatisées pour toutes les fusions vers les branches principales.
- Appliquez des commits signés et la signature d'artefacts pour la création de versions lorsque cela est possible.
- Faites régulièrement tourner les jetons de déploiement et limitez leur portée à ce qui est nécessaire.
Sécurisez votre pipeline de développement WordPress — essayez WP-Firewall Free
Si vous souhaitez un point de départ pratique pour protéger votre site WordPress en direct pendant que vous renforcez votre pipeline de construction, WP-Firewall propose un plan de base gratuit qui inclut des protections essentielles :
- Protection essentielle : pare-feu géré, bande passante illimitée, WAF, scanner de logiciels malveillants et atténuation des 10 principaux risques OWASP.
Inscrivez-vous au plan gratuit aujourd'hui et bénéficiez d'une surveillance continue et d'un scan automatisé pour aider à détecter les changements suspects après déploiement et les tentatives d'attaque basées sur le web :
https://my.wp-firewall.com/buy/wp-firewall-free-plan/
(Si vous avez besoin de fonctionnalités plus avancées — suppression automatique de malware, mise sur liste noire d'IP, rapports de sécurité mensuels, patching virtuel et services gérés — consultez nos plans payants qui s'adaptent aux exigences des agences et des hébergeurs.)
Foire aux questions (FAQ)
- Q : Mon site est purement PHP — dois-je encore m'inquiéter d'une vulnérabilité de package NPM ?
- R : Oui. Si votre pipeline de développement, thème ou plugin utilise des outils Node.js à un moment donné (pour le bundling JS, la construction d'actifs de l'éditeur de blocs, ou CI), les artefacts de construction peuvent être modifiés par une chaîne d'outils compromise. Même si le PHP de production n'utilise pas Node, le JavaScript injecté dans les thèmes/plugins ou les scripts de déploiement modifiés peuvent compromettre un site WordPress.
- Q : Je fais des builds localement et déploie des artefacts manuellement — le risque est-il plus faible ?
- R : Potentiellement, mais pas éliminé. Les environnements locaux sont toujours des surfaces d'attaque. Assurez-vous que les outils locaux sont patchés, effectuez des builds reproductibles, et utilisez des artefacts signés ou des sommes de contrôle pour vérifier l'intégrité avant le déploiement.
- Q : Un WAF peut-il prévenir cela ?
- R : Un WAF peut aider à atténuer certaines menaces post-déploiement et bloquer l'exploitation contre des modèles web connus, mais les WAF ne peuvent pas réparer des artefacts de construction compromis. L'approche correcte est en couches : durcir les pipelines de construction et utiliser WAF + scan de malware pour détecter et atténuer les problèmes sur le site en direct.
Derniers mots — un état d'esprit de sécurité pour WordPress moderne
Le développement moderne de WordPress est intégré à l'écosystème plus large de JavaScript et de DevOps. Cela apporte de la productivité mais aussi de nouveaux types de risques. Une vulnérabilité de chaîne d'approvisionnement dans un outil de construction peut ne pas être une vulnérabilité PHP, mais les conséquences peuvent être identiques : portes dérobées, vol de données, spam SEO et impact sur les utilisateurs.
Traitez votre pipeline de construction comme une frontière de sécurité critique. Corrigez les outils rapidement, adoptez des constructions reproductibles et des principes de moindre privilège, surveillez à la fois les systèmes CI et de production, et utilisez une défense en couches pour votre site. WP-Firewall est conçu pour faire partie de cette défense en couches : un WAF géré, des fonctionnalités de détection et de scan de logiciels malveillants, et des fonctionnalités d'atténuation qui vous aident à réduire le rayon d'explosion si un outil en amont est abusé.
Si vous avez besoin d'aide immédiate, commencez par mettre à jour @turbo/workspaces vers 2.9.14 (ou version ultérieure) dans tous les environnements, appliquez l'utilisation de fichiers de verrouillage dans CI, et effectuez un scan complet du site. Et si vous n'avez pas déjà de surveillance continue des points de terminaison et un WAF géré protégeant votre site WordPress en direct, envisagez le plan de base WP-Firewall pour obtenir une protection essentielle rapidement : https://my.wp-firewall.com/buy/wp-firewall-free-plan/
Restez vigilant. Les outils continueront d'évoluer - vos pratiques de sécurité doivent évoluer avec eux.
