Vulnérabilité dans le plugin PageLayer de WordPress

Date de publication :

CVE-aaaa-xxxx [Score CVSS v3 : En cours de calcul] :Une vulnérabilité impactant le plugin PageLayer de WordReference a été corrigée. 

Le plugin PageLayer comprend une page de paramètres qui permet aux développeurs web de sélectionner les options de police et de couleur par défaut à utiliser par le constructeur de pages. Il accepte ces options via divers paramètres $_POST. À titre d’exemple, body[font-size] ou h3[font-size] sont utilisés pour définir la taille de la police pour les balises body ou h3, et color[background] est être utilisé pour définir la couleur de fond.

La fonction utilisée pour modifier ces paramètres, pagelayer_website_settings, contenait un mécanisme de vérification pour s'assurer que seules les demandes valides et autorisées pouvaient apporter des modifications.

Une demande soumise sans le paramètre "submit" n'enregistre pas ces modifications, et continue avec la fonction pagelayer_website_settings utilisée pour afficher les formulaires sur la page des paramètres. Cependant cette fonction appelait également deux autres fonctions qui acceptaient les entrées de l'utilisateur afin d'afficher les paramètres, et c’est en exploitant ces deux fonctions qu'un attaquant distant et non-authentifié pourrait injecter du JavaScript malveillant qui pouvait conduire à la prise de contrôle d'un site WordPress.

La fonction pagelayer_website_font_settings accepte les entrées du paramètre $_POST et fait écho au sous-paramètre $prefix['font-size'] à chaque fois que la fonction est exécutée, où $prefix est une balise différente telle que body ou h3. Ainsi, un attaquant qui tromperait un administrateur en lui faisant cliquer sur un lien qui a soumis une requête POST contenant un paramètre réglé sur un script malveillant, ce script. Ce script sera alors exécuté dans le navigateur de l'administrateur.

De même, la fonction pagelayer_website_color accepte également les entrées du paramètre $_POST, mais fait écho au sous-paramètre color[$value] à chaque fois que la fonction est exécutée, où $value est un sélecteur CSS tel que background ou link. Ainsi, un attaquant qui tromperait un administrateur en lui faisant cliquer sur un lien qui a soumis une requête POST contenant un paramètre réglé sur un script malveillant, ce script. Ce script sera alors exécuté dans le navigateur de l'administrateur.

Les exploitations de cette vulnérabilité visant les administrateurs de sites pourraient être utilisés pour prendre le contrôle d'un site en créant des comptes administratifs malveillants ou en intégrant des portes dérobées dans les fichiers de thèmes.

Tous les sites utilisant la solution Wordfence, y compris la version gratuite, sont protégés contre cette vulnérabilité par la protection XSS intégrée du pare-feu Wordfence.

 

Informations

La faille est activement exploitée :

Un correctif existe :

Une mesure de contournement existe :

Risques

Risques

  • Attaque de type XSS (Cross-site scripting)
  • Injection de code arbitraire

Criticité

  • Score CVSS v3 : En cours de calcul

Existence d’un code d’exploitation

  • Il n’existe pas de code d’exploitation à l’heure actuelle.
  • Néanmoins les descriptions de la vulnérabilité disponible en référence rendent son exploitation relativement aisée.

Composants vulnérables

  • Les versions du plugin WordPress PageLayer antérieures à la version 1.3.5 sont impactées par cette vulnérabilité.

CVE

  • CVE-aaaa-xxxxx

Solutions ou recommandations

Recommandations

Mise en place de correctifs de sécurité

  • Mettre à jour le plugin WordPress PageLayer vers la version 1.3.5 ou une version ultérieure.

Solution de contournement

  • Il n’existe pas de solution de contournement à l’heure actuelle.