
CVE-2017-9841 detector script
Script de détection CVE-2017-9841 par Massimiliano Brasile
Le 6 janvier 2020, j'ai été informé d'un problème de sécurité affectant apparemment la plupart des versions de PrestaShop (l'avertissement a été partagé par l'équipe PS en interne uniquement le 3 janvier 2020). Après quelques recherches, j'ai découvert que le problème est lié à une bibliothèque de framework de test appelée PHPUnit [1] qui est accidentellement incluse dans certains modules de production utilisés dans Prestashop 1.7 (distribués soit via l'API Prestashop, soit avec les installations PrestaShop). Le problème pour PHPUnit a été étiqueté CVE-2017-9841 [2] [3], mais l'avertissement pour Prestashop est actif actuellement car il y a au moins un bot ( XsamXadoo ) qui scanne les sites PS exactement pour ce problème [4].
Techniquement, CVE-2017-9841 fait référence à la possibilité d'exécuter du code à distance sur toute application utilisant une version buggée de phpunit/phpunit et le 8 janvier 2020 un autre problème a été découvert ( avant 4.8.28 et 5.x avant 5.6.3 lié aux versions antérieures à 7.5.19 pour la 7.x et à 8.5.1 pour la 8.x [5] ). Puisque phpunit est un framework célèbre, il semble que le problème ait un impact sur les principaux CMS PHP (Prestashop, Wordpress, Drupal, ..) et leurs plugins, mais seulement s'ils l'utilisent. Pour aider à trouver ces backdoors, il est obligatoire de vérifier toute inclusion de ce framework de test dans chaque sous-dossier de votre racine web. Donc, pour accélérer le tout, j'ai écrit ce petit script quick&dirty qui m'aide à contrôler toutes les instances de Prestashop ou Wordpress dont j'ai la charge.
Selon le forum PS [4], ces modules doivent être vérifiés :
Mais dans mes tests, je l'ai également trouvé dans le module ps_facetedsearch v3.2.1. Il n'était pas présent dans autoupgrade v4.9+.
En cas d'occurrence de version buggée d'instances phpunit, mettez à jour si possible son module parent ou supprimez (supprimez le dossier) les si ils manquent de support de leur développeur ; selon le forum PS, vous devriez complètement supprimer tous les dossiers vendor à l'intérieur de ces modules, mais cela doit être vérifié !
[2] https://nvd.nist.gov/vuln/detail/CVE-2017-9841
[3] https://www.cvedetails.com/cve/CVE-2017-9841
[4] https://www.prestashop.com/forums/topic/1012095-hack-prestashop-avec-xsamxadoo-bot
[5] PAS encore officiel !! voir https://github.com/PrestaShop/PrestaShop/issues/17059#issuecomment-572114133