Le 9 septembre 2020, notre équipe Threat Intelligence a découvert une vulnérabilité dans Créateur de thème enfant par Orbisius, un plugin WordPress installé sur plus de 30 000 sites. Cette faille donnait aux attaquants la possibilité de forger des requêtes pour le compte d’un administrateur afin de modifier des fichiers de thème arbitraires et de créer de nouveaux fichiers PHP, ce qui pourrait permettre à un attaquant de réaliser une exécution de code à distance (RCE) sur le serveur d’un site vulnérable.

Nous avons d’abord contacté le développeur du plugin le 9 septembre 2020. Après avoir établi un canal de communication approprié, nous avons fourni tous les détails de divulgation le 10 septembre 2020. Le développeur nous a fourni une copie du correctif prévu le 11 septembre 2020 pour nous pour tester. Nous avons confirmé que le correctif corrigeait la vulnérabilité le 11 septembre 2020 et le développeur du plugin a publié le correctif pour le produit le 30 septembre 2020.

Nous vous recommandons vivement de mettre à jour immédiatement la version corrigée 1.5.2.

Les utilisateurs de Wordfence Premium ont reçu une règle de pare-feu pour se protéger contre tout exploit visant cette vulnérabilité le 9 septembre 2020. Les sites utilisant toujours la version gratuite de Wordfence ont reçu la même protection le 9 octobre 2020.

Child Theme Creator par Orbisius est un plugin conçu pour créer des thèmes enfants. Il dispose également d’un éditeur de thème intégré au plugin pour une édition facile de tous les thèmes enfants nouvellement créés.

Le plugin utilise une action AJAX pour déclencher les fonctions de l’éditeur de thème qui sont utilisées pour effectuer des actions comme le chargement d’un fichier, l’enregistrement d’un fichier et la suppression d’un fichier qui sont toutes enregistrées comme sous-commandes via lesub_cmd‘paramètre.

add_action( 'wp_ajax_orbisius_ctc_theme_editor_ajax', 'orbisius_ctc_theme_editor_ajax');
add_action( 'wp_ajax_nopriv_orbisius_ctc_theme_editor_ajax', 'orbisius_ctc_theme_editor_no_auth_ajax');
/**
 * This is called via ajax. Depending on the sub_cmd param a different method will be called.
 */
function orbisius_ctc_theme_editor_ajax() {
    $buff="INVALID AJAX SUB_CMD";

    $req = orbisius_child_theme_creator_get_request();
    $sub_cmd = empty($req['sub_cmd']) ? '' : $req['sub_cmd'];

    switch ($sub_cmd) {
        case 'generate_dropdown':
            $buff = orbisius_ctc_theme_editor_generate_dropdown();

            break;

        case 'load_file':
            $buff = orbisius_ctc_theme_editor_manage_file(1);
            break;

        case 'save_file':
            $buff = orbisius_ctc_theme_editor_manage_file(2);

            break;

        case 'delete_file':
            $buff = orbisius_ctc_theme_editor_manage_file(3);

            break;

        case 'syntax_check':
            $buff = orbisius_ctc_theme_editor_manage_file(4);

            break;

        case 'send_theme':
            $buff = orbisius_ctc_theme_editor_manage_file(5);

            break;

        default:
            break;
    }

    die($buff);

le orbisius_ctc_theme_editor_manage_file fonction liée à chacun ‘sub_cmdLa valeur avait un contrôle de capacité, cependant, il manquait toute forme de protection contre la falsification des demandes intersites.

 function orbisius_ctc_theme_editor_manage_file( $cmd_id = 1 ) {
  if ( ! current_user_can( 'edit_themes' ) ) {
        return 'Missing data!';
    }

Cela signifiait que si des attaquants pouvaient amener un administrateur de site à cliquer sur un lien ou à effectuer une action, alors un attaquant pouvait utiliser le orbisius_ctc_theme_editor_manage_file fonction liée à l’action AJAX pour télécharger un fichier arbitraire dans le répertoire de thèmes du site, ou modifier tout fichier de thème existant pour injecter du code malveillant et créer un webshell ou une porte dérobée.

Une fois qu’un attaquant télécharge une porte dérobée ou une webshell, il peut maintenir la persistance sur le site et le serveur WordPress ainsi qu’exécuter des commandes arbitraires pour augmenter ses privilèges.

Procédure recommandée pour les plugins utilitaires

Child Theme Creator par Orbisius appartient à une catégorie de plugins utilitaires qui sont rarement utilisés plus de quelques fois et qui ne sont pas nécessaires pour la fonctionnalité frontale du site. Ces plugins utilitaires, tels que les gestionnaires de fichiers, les créateurs de thèmes enfants, les duplicateurs de site ou les utilitaires d’optimisation de base de données, ne sont utiles que pendant une courte période pour permettre à un administrateur de site d’effectuer une action spécifique, mais ces plugins ne fournissent aucune fonctionnalité utile aux visiteurs du site.

Moins vous laissez de code sur votre site WordPress, qu’il s’agisse de thèmes ou de plugins, moins vous avez à maintenir. De plus, moins de code sur votre site WordPress laisse moins de possibilités de vulnérabilités qui pourraient mettre votre site en danger. En tant que tel, nous vous recommandons d’installer uniquement des plugins utilitaires sur votre site lorsque vous devez effectuer une action spécifique et, en règle générale, de supprimer complètement ces plugins de votre site lorsqu’ils ne sont pas utilisés afin de protéger votre site.

Calendrier de divulgation

9 septembre 2020 – Découverte initiale de la vulnérabilité. Nous développons une règle de pare-feu pour protéger les clients de Wordfence et la publier. Les utilisateurs de Wordfence Premium reçoivent cette règle. Nous faisons notre première tentative de contact avec le développeur du plugin.
10 septembre 2020 – Le développeur du plugin confirme la boîte de réception pour gérer la discussion. Nous envoyons une divulgation complète.
11 septembre 2020 – Le développeur du plugin confirme la vulnérabilité et nous fournit une copie corrigée pour vérifier les correctifs. Nous confirmons les correctifs le même jour.
22 septembre 2020 – Faites un suivi pour confirmer quand le correctif sera publié dans le référentiel WordPress. Le développeur du plugin répond le même jour en confirmant que le correctif sera publié cette semaine.
30 septembre 2020 – Le correctif est publié dans la version 1.5.2.
9 octobre 2020 – 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 Child Theme Creator par Orbisius qui accordait aux attaquants la possibilité de télécharger des fichiers arbitraires et de modifier des fichiers de thème existants, qui pourraient être utilisés pour exécuter du code à distance. Cette faille a été entièrement corrigée dans la version 1.5.2. Nous recommandons aux utilisateurs de mettre immédiatement à jour vers la dernière version disponible, qui est la version 1.5.2 au moment de cette publication.

Les deux sites utilisant Wordfence Premium et ceux qui utilisent encore la version gratuite de Wordfence sont protégés contre les attaques contre cette vulnérabilité. Les utilisateurs de Wordfence Premium ont reçu cette protection le 10 septembre 2020, tandis que ceux qui utilisent toujours la version gratuite de Wordfence ont reçu la même protection le 10 octobre 2020.

Si vous connaissez un ami ou un collègue qui utilise ce plugin sur son site, nous vous recommandons vivement de lui transmettre cet avis pour aider à garder ses sites protégés car il s’agit d’une mise à jour de sécurité de haute gravité.


Source link