Comment protéger votre site WordPress de la vulnérabilité XSS de Genericons Example.html

introduction

Le 6 mai 2015, un bug critique lié à WordPress a été révélé qui affecte potentiellement des millions d’utilisateurs. Cette vulnérabilité, qui provient en fait de composants qui utilisent le package de polices de l’icône «Genericons», peut laisser votre site ouvert aux attaques de script intersite (XSS).

Dans cet article, nous expliquerons l’impact de la vulnérabilité, comment vérifier si votre site est vulnérable et quelles actions vous devez entreprendre si vous pensez que vous êtes affecté.

Explication de la vulnérabilité

La vulnérabilité actuelle est présente dans un paquet de polices appelé «Genericons» et non dans l’installation principale de WordPress. Malheureusement, ce paquet de polices est utilisé par “TwentyFifteen”, le thème installé et activé dans WordPress par défaut. Cette vulnérabilité concernait également un plugin populaire de personnalisation et d’amélioration de WordPress appelé «JetPack», qui compte plus d’un million d’installations actives, ainsi que éventuellement des plug-ins et des thèmes.

La vulnérabilité existe dans un fichier unique appelé + example.html + qui est inclus dans le package Genericon. Ceci est un fichier non essentiel qui a été inclus pour présenter la police. Cependant, il inclut un fragment de code jQuery qui introduit une vulnérabilité permettant potentiellement des exploits de script intersite basés sur DOM. Tous les thèmes ou plug-ins qui utilisaient les versions les plus modernes du paquet «Genericons» sans supprimer ce fichier étaient vulnérables.

Une attaque de script intersite basée sur le DOM consiste à modifier l’environnement DOM tel qu’il est interprété par le navigateur de l’utilisateur, ce qui entraîne l’exécution des actions scriptées d’une manière contraire à leur conception initiale. Pour exploiter cette vulnérabilité, un utilisateur doit être incité à cliquer sur un lien spécialement conçu tout en étant connecté à une installation WordPress. Si une application présente ce type de vulnérabilité, le serveur ne peut pas facilement empêcher les comportements indésirables, car les actions se produisent dans le navigateur même. Heureusement, la suppression de la vulnérabilité est triviale dans ce cas.

Est-ce que mon serveur a cette vulnérabilité?

Le 7 mai 2015, WordPress 4.2.2 a été publié, corrigeant ce problème. Si vous avez installé ou mis à jour la dernière version de WordPress à cette date ou après, votre installation doit être sécurisée. Les gouttelettes DigitalOcean créées à partir de WordPress en un clic sur ou après cette date ne doivent pas être vulnérables.

Si vous utilisez une instance WordPress installée avant cette date et que vous n’avez pas mis à jour la version 4.2.2, votre site peut être vulnérable. Si tel est le cas, votre panneau d’administration affichera un avertissement ressemblant à ceci:

image: https: //assets.digitalocean.com/articles/wordpress_genericons_vuln/update_warning.png [Avertissement de mise à jour de WordPress]

Vous pouvez également aller à la racine du document de votre serveur et chercher les fichiers + example.html eux-mêmes. Par exemple, si vous êtes à la racine du document de votre serveur, vous pouvez taper:

find . -path "*/genericons/example.html"

Les résultats ressembleront à ceci:

find output./wp-content/themes/twentythirteen/genericons/example.html
./wp-content/themes/twentyfifteen/genericons/
./wp-content/themes/twentyfourteen/genericons/example.html

Dans l’exemple ci-dessus, un fichier + example.html a été trouvé dans le thème Twenty Fifteen, indiquant que cette installation est vulnérable. Les fichiers + example.html + contenus dans les autres thèmes présentés ici ne sont pas vulnérables, car ils n’incluent pas les lignes jQuery incriminées. Recherchez les fichiers + example.html + dans le répertoire + vingt-cinq / génériques + ou dans tous les plug-ins que vous pourriez avoir.

Comment patcher votre installation

La méthode recommandée pour corriger votre système consiste simplement à mettre à jour WordPress. Cela sécurisera non seulement votre système contre cette vulnérabilité, mais également tout autre problème pouvant avoir été résolu.

Si vos autorisations le permettent, vous pouvez généralement mettre à niveau votre installation à l’aide des contrôles de mise à jour du panneau d’administration. Vous pouvez voir cette option sous forme de lien sur la page principale (comme indiqué dans la capture d’écran précédente). Sinon, vous pouvez aller à l’option «Mises à jour» dans le panneau de configuration et cliquer sur le bouton «Mettre à jour maintenant»:

image: https: //assets.digitalocean.com/articles/wordpress_genericons_vuln/update_now.png [Mise à jour de WordPress maintenant]

Vous devrez également probablement mettre à jour vos thèmes et vos plugins séparément.

Bien que nous vous recommandons vivement de mettre à jour complètement WordPress (avec tous les thèmes ou plugins concernés), vous pouvez également supprimer manuellement les fichiers incriminés.

Pour ce faire, connectez-vous à votre serveur WordPress et accédez au répertoire racine de votre document. Vous pouvez supprimer les fichiers incriminés en tapant:

sudo find . -path "*/genericons/example.html" -exec rm -f {} \;

Vous pouvez ensuite vérifier à nouveau la structure de votre répertoire:

find . -path "*/genericons/example.html"

Toutes les instances + example.html + dans un répertoire + genericons + devraient être supprimées.

Conclusion

Alors que le nombre d’utilisateurs vulnérables à ce bogue était très élevé, le correctif est très simple et peut être accompli via la méthode de mise à jour WordPress normale. Si vous gérez des installations WordPress pour vos propres besoins ou pour des clients, le correctif disponible dans la version 4.2.2 fermera facilement cette vulnérabilité. Comme toujours, l’une des meilleures méthodes pour sécuriser vos installations WordPress consiste à appliquer immédiatement les mises à jour de sécurité.

Related