Le message suivant décrit comment des contrôles d’accès incorrects conduisent à une vulnérabilité de script intersite stockée dans le plug-in de consentement aux cookies GDPR qui a émergé après sa suppression du référentiel. L’équipe Wordfence a publié une règle de pare-feu pour nos clients Premium le 10 février.

Pour aider à sensibiliser à ce problème, nous divulguons aujourd’hui les détails de cette vulnérabilité, maintenant qu’un correctif a été publié et que les utilisateurs qui n’utilisent pas Wordfence Premium ont un chemin de mise à niveau clair. Une description technique de la vulnérabilité dans le plugin «GDPR Cookie Consent» suit.

Le consentement aux cookies du RGPD est un plugin fournissant aux propriétaires de sites la fonctionnalité de présenter un modal non intrusif pour permettre aux utilisateurs finaux du site d’examiner et de consentir à recevoir les cookies de ce site. Il est utile pour les sites qui souhaitent se conformer aux réglementations de l’UE relatives au RGPD / Loi sur les cookies. Le consentement aux cookies du RGPD compte actuellement 700 000 installations actives.

Plus tôt cette semaine, le plugin GDPR Cookie Consent a été fermé “en attendant un examen complet” selon la page du plugin dans le répertoire. Normalement, lorsque les plugins sont fermés dans le répertoire des plugins WordPress sans raison claire, les utilisateurs de plugins peuvent être inquiets ou confus. Parce que les plugins peuvent souvent être fermés en raison de problèmes de sécurité, nous avons décidé d’enquêter pour voir si c’était le cas. le journal de développement a montré la révision la plus récente avec le message de journal “1.8.3 – Compatibilité PHP 7.4 – Correctif de sécurité”, nous avons donc décidé d’approfondir les modifications du code pour déterminer sa gravité afin de protéger les utilisateurs de Wordfence.

Il y a eu un certain nombre de changements de code, mais ceux qui concernent la sécurité incluent une vérification des capacités ajoutée à un point de terminaison AJAX utilisé dans les pages d’administration du plugin.

Étant donné que le point de terminaison AJAX était destiné à être uniquement accessible aux administrateurs, la vulnérabilité permet aux utilisateurs de niveau abonné d’effectuer un certain nombre d’actions qui peuvent compromettre la sécurité du site.

Il existe 3 actions que la vulnérabilité expose aux abonnés: get_policy_pageid, autosave_contant_data, et save_contentdata.

get_policy_pageid ne fait pas autre chose que renvoyer l’ID de publication de la page de politique de cookies configurée du plugin. Il n’y a pas beaucoup de risques à mettre cette action à la disposition des abonnés.

autosave_contant_data est destiné à définir le contenu par défaut qui apparaît dans la page d’aperçu de la politique de cookies. Le contenu HTML stocké n’est pas filtré et peut contenir script intersite (XSS) charges utiles. La page d’aperçu de la politique en matière de cookies est accessible au public pour tous les utilisateurs, et ces charges utiles XSS seront exécutées lors de la visite http:///cli-policy-preview/.

save_contentdata est conçu pour créer ou mettre à jour la publication correspondante utilisée comme page de politique de cookies du RGPD que les utilisateurs finaux du site devraient consulter pour choisir d’accepter ou non les cookies du site. L’action prend page_id paramètre avec un content_data paramètre qui contient le contenu du post. le page_id Le paramètre permet à l’attaquant de mettre à jour le contenu de la publication de n’importe quelle publication. En outre, il définira le statut de la publication sur draft, les attaquants qui cherchent à utiliser cette vulnérabilité pour la dégradation ne pourront pas afficher le contenu de la publication aux utilisateurs finaux normaux du site. Il pourrait cependant être utilisé pour supprimer des publications et des pages de la partie publique du site.

Étant donné que le poste est en draft état, le contenu de la publication sera visible par l’auteur, les éditeurs et les administrateurs de la publication. Par défaut, lorsque wp_insert_post est utilisé pour créer et mettre à jour des articles, le contenu de l’article est parcouru wp_filter_post_kses qui est la liste blanche HTML de WordPress. Il est conçu pour n’autoriser que des balises et des attributs HTML spécifiques et supprimera les charges utiles XSS.

Parce que le contenu du message peut contenir shortcodes, un attaquant peut cependant utiliser les shortcodes intégrés du GDPR Cookie Consent pour contourner le filtre KSES. Ces shortcodes sont analysés lors de l’affichage du message rendu dans le navigateur. Voici un exemple de shortcode qui peut être inclus dans le contenu de la publication qui rendra une charge utile XSS valide dans le navigateur lors de la consultation de la publication:

[cookie_accept colour='" onmousemove=alert(/xss/);this.onmousemove=null; style="position:fixed;top:0;right:0;bottom:0;left:0;" test="']

Parce que le message lui-même ne sera plus public sur le site (puisque le statut du message a été changé en draft) la charge utile XSS ne peut être exécutée que par les auteurs, éditeurs et administrateurs qui consultent le message.

Chronologie

  • 8 février 2020 – Le plugin GDPR Cookie Consent est supprimé du répertoire des plugins wordpress.org.
  • 10 février 2020 08:02 UTC – A correctif corrigeant la vulnérabilité est poussé vers plugins.svn.wordpress.org.
  • 10 février 2020 18:37 UTC – Nous déployons une règle de pare-feu pour fournir une protection contre cette vulnérabilité à notre flux de défense contre les menaces.
  • 11 février 2020 22h00 UTC – Le consentement aux cookies GDPR est rouvert dans le répertoire du plugin avec la version corrigée disponible au téléchargement.
  • 11 mars 2020 – Les utilisateurs de Wordfence utilisant toujours la version gratuite reçoivent la règle de pare-feu pour protéger leur site.

Conclusion

Dans l’article d’aujourd’hui, nous avons détaillé comment une vérification des capacités manquantes peut conduire à des scripts intersites stockés dans le plug-in GDPR Cookie Consent. Cette vulnérabilité a été corrigée dans la version 1.8.3. Nous recommandons aux utilisateurs de mettre à jour immédiatement la dernière version disponible. Les sites exécutant Wordfence Premium sont protégés contre les attaques contre cette vulnérabilité depuis le 10 février. Les sites exécutant la version gratuite de Wordfence reçoivent la mise à jour des règles de pare-feu le 11 mars 2020.

De plus, la protection générique XSS intégrée à notre WAF a bloqué les charges utiles XSS envoyées à tous les points de terminaison AJAX testés avec cette vulnérabilité. Cette protection XSS est fournie avec le Wordfence WAF et est disponible depuis le début pour les utilisateurs premium et gratuits.

Un merci spécial à Matt Rusnak et Ryan Britton pour avoir géré l’enquête initiale sur cette vulnérabilité.


Source link

%d blogueurs aiment cette page :