WordPress : Êtes-vous au parfum de la faille « zero-day » ?

  • ARTICLES
  • /
  • WORDPRESS : ÊTES-VOUS AU PARFUM DE LA FAILLE « ZERO-DAY » ?

« Réinitialiser votre mot de passe » sans votre consentement, c’est la pire des choses qui peut vous arriver à votre compte. Pourtant, l’expert en sécurité Dawid Golunski vient de localiser une faille « zero-day » qui exécute cette tâche dans le mécanisme de réinitialisation de mot de passe du CMS.



L’expert en a déjà parlé à la branche sécurité de WordPress, sauf que dix mois plus tard, le correctif de sécurité n’était toujours pas disponible. Le chercheur a décidé de prévenir le public pour protéger les autres blogs sous d’autres moyens.



Répertorié CVE-2017-8295, « zero-day » affecte toutes les versions de WordPress. Il est lié à la façon dont les sites WP Engine, ou WordPress.com assemblent les e-mails de réinitialisation. Les résultats de Golunski indiquent que l’attaquant créer une requête HTTP de réinitialisation en injectant une dose de variable SERVER_NAME pour générer un en-tête From/Return-Path dans l’e-mail concerné.



À son insu, le site WordPress va encapsuler l’e-mail et envoyé à l’adresse électronique du propriétaire légitime. Pour les néophytes, c’est une faille affecte au minima leur sécurité puisqu’il s’agit simplement d’un envoi,



Mais…



Golunski décrit de façon très précise le scénario qui se révèle très dangereux. À première vue, votre boîte de réception sera inondée par des courriels indésirables, et sera pleine. Trois possibilités peuvent arriver :




  • - « zero-day » lance une attaque DDoS sur l’adresse e-mail de la victime afin que le message de réinitialisation n’atteigne pas sa boîte de réception, et soit renvoyé vers l’adresse de l’attaquant ;

  • - L’adresse e-mail de l’attaquant sera en copie du mail de réinitialisation ;

  • - Une cohue de demandes de réinitialisation va obliger l’utilisateur à l’exécuter. Le lien serait ensuite envoyé à l’attaquant.



...Comment se protéger ?



En tant que solution temporaire, l’utilisateur peut imposer une valeur statique à SERVER_NAME. Une solution plus ingénieuse consiste également à créer un hôte virtuel fictif qui va capturer toutes les requêtes des en-têtes d’hôtes indéterminés.