Le 29 juillet 2021, l’équipe Wordfence Threat Intelligence a lancé le processus de divulgation responsable d’une vulnérabilité que nous avons découverte dans SEOPresse, un plugin WordPress installé sur plus de 100 000 sites. Cette faille permettait à un attaquant d’injecter des scripts Web arbitraires sur un site vulnérable qui s’exécuterait à chaque fois qu’un utilisateur accédait à la page « Tous les messages ».

Les utilisateurs de Wordfence Premium ont reçu une règle de pare-feu pour se protéger contre tout exploit ciblant cette vulnérabilité le 29 juillet 2021. Les sites utilisant encore la version gratuite de Wordfence recevront la même protection le 28 août 2021.

Nous avons initialement contacté le développeur du plugin le 29 juillet 2021. Après avoir reçu la confirmation d’un canal de communication approprié le lendemain, le 30 juillet 2021, nous avons fourni tous les détails de la divulgation. Le fournisseur a rapidement reconnu le rapport et un correctif a été publié le 4 août 2021 dans la version 5.0.4.

Nous vous recommandons fortement de mettre à jour immédiatement vers la dernière version corrigée de SEOPress, la version 5.0.4, si vous utilisez actuellement une version vulnérable du plugin.


SEOPress est un plugin WordPress conçu pour optimiser le référencement des sites WordPress grâce à de nombreuses fonctionnalités différentes, comme la possibilité d’ajouter des métadonnées SEO, des fils d’Ariane, des schémas, etc. Une fonctionnalité que le plugin implémente est la possibilité d’ajouter un titre et une description SEO aux publications, et cela peut être fait tout en enregistrant les modifications dans une publication ou via un point de terminaison REST-API nouvellement introduit.

        register_rest_route('seopress/v1', '/posts/(?P<id>d+)/title-description-metas', [
            'methods'             => 'PUT',
            'callback'            => [$this, 'processPut'],
            'args'                => [
                'id' => [
                    'validate_callback' => function ($param, $request, $key) {
                        return is_numeric($param);
                    },

Malheureusement, ce point de terminaison REST-API n’a pas été implémenté de manière non sécurisée. Le permissions_callback pour le point de terminaison vérifié uniquement si l’utilisateur avait un nonce REST-API valide dans la demande. Un nonce REST-API valide peut être généré par tout utilisateur authentifié à l’aide de l’action AJAX de base WordPress rest-nonce. Cela signifiait que tout utilisateur authentifié, comme un abonné, pouvait appeler la route REST avec un nonce valide et mettre à jour le titre et la description SEO de tout message.

            'permission_callback' => function ($request) {
                $nonce = $request->get_header('x-wp-nonce');
                if ( ! wp_verify_nonce($nonce, 'wp_rest')) {
                    return false;
                }

                return true;

La charge utile pourrait inclure des scripts Web malveillants, tels que JavaScript, en raison d’un manque de désinfection ou d’une fuite sur les paramètres stockés. Ces scripts Web s’exécuteraient ensuite à chaque fois qu’un utilisateur accédait à la page « Tous les messages ». Comme toujours, les vulnérabilités de script inter-sites telles que celle-ci peuvent conduire à une variété d’actions malveillantes telles que la création de nouveaux comptes administratifs, l’injection de webshell, les redirections arbitraires, etc. Cette vulnérabilité pourrait facilement être utilisée par un attaquant pour s’emparer d’un site WordPress.

Calendrier de divulgation

29 juillet 2021 – Découverte initiale et analyse de la vulnérabilité. Nous développons une règle de pare-feu pour protéger les clients de Wordfence et la diffusons aux utilisateurs de Wordfence Premium. Nous prenons contact avec le fournisseur du plugin.
30 juillet 2021 – Le vendeur confirme la boîte de réception pour le traitement de la divulgation. Nous envoyons tous les détails de divulgation.
1 août 2021 – Le fournisseur confirme qu’il a reçu les détails et commencera à travailler sur un correctif.
4 août 2021 – Une nouvelle version mise à jour du plugin est publiée contenant suffisamment de correctifs.
28 août 2021 – Les utilisateurs gratuits de Wordfence reçoivent une règle de pare-feu.

Conclusion

Dans l’article d’aujourd’hui, nous avons détaillé une faille dans SEOPress qui permettait aux attaquants d’injecter des scripts Web arbitraires qui pourraient finalement permettre aux attaquants de s’emparer des sites WordPress. Cette faille a été entièrement corrigée dans la version 5.0.4. Nous recommandons aux utilisateurs de WordPress de mettre immédiatement à jour la dernière version disponible, qui est la version 5.0.4 au moment de cette publication, s’ils exécutent une version vulnérable de ce plugin.

Wordfence Premium les utilisateurs ont reçu une règle de pare-feu pour se protéger contre tout exploit ciblant cette vulnérabilité le 29 juillet 2021. Les sites utilisant encore la version gratuite de Wordfence recevront la même protection le 28 août 2021.

Si vous connaissez un ami ou un collègue qui utilise ce plugin sur son site, nous vous recommandons fortement de lui transmettre cet avis pour aider à protéger ses sites car il s’agit d’une vulnérabilité qui peut conduire à une prise de contrôle complète du site.

Cliquez ici pour rejoindre la liste de diffusion WordPress Security et recevez des rapports de vulnérabilité comme celui-ci dès leur publication.


Source link