
Script detector de CVE-2017-9841
Script detector de CVE-2017-9841 por Massimiliano Brasile
QUÉ SUCEDIÓ
El 6 de enero de 2020 me informaron de un problema de seguridad que aparentemente afecta a la mayoría de las versiones de PrestaShop (la advertencia fue compartida por el equipo de PS solo internamente el 3 de enero de 2020). Tras indagar un poco, descubrí que el problema está relacionado con una librería de framework de pruebas llamada PHPUnit [1] que se incluye accidentalmente en algunos módulos de producción utilizados en PrestaShop 1.7 (distribuidos ya sea a través de la API de PrestaShop o con instalaciones de PrestaShop). El problema de PHPUnit fue etiquetado como CVE-2017-9841 [2] [3], pero la advertencia para PrestaShop está activa en este momento porque hay al menos un bot ( XsamXadoo ) escaneando sitios web de PS exactamente por este problema [4].
CÓMO FUNCIONA
Técnicamente, CVE-2017-9841 se refiere a la posibilidad de ejecutar código remoto en cualquier aplicación que utilice una versión con errores de phpunit/phpunit, y el 8 de enero de 2020 se descubrió otro problema ( antes de 4.8.28 y 5.x antes de 5.6.3 relacionado con versiones anteriores a 7.5.19 para 7.x y 8.5.1 para 8.x [5] ). Dado que phpunit es un framework famoso, parece que el problema afecta a los principales CMS de PHP (Prestashop, Wordpress, Drupal, ..) y sus plugins, pero solo en caso de que los utilicen. Para ayudar a encontrar estos backdoors, es obligatorio comprobar cualquier inclusión de este framework de pruebas en cada subcarpeta de tu raíz web. Así que, para acelerar todo el proceso, he escrito este pequeño script rápido y sucio que me ayuda a controlar todas las instancias de Prestashop o Wordpress de las que soy responsable.
DÓNDE COMPROBAR
Según el foro de PS [4], estos módulos deben comprobarse:
Pero en mis pruebas también lo he encontrado en el módulo ps_facetedsearch v3.2.1. No estaba presente en autoupgrade v4.9+.
CÓMO USAR EL SCRIPT
CÓMO SOLUCIONARLO
En caso de que aparezcan instancias de phpunit con versiones con errores, actualiza si es posible su módulo padre o elimínalas (borra la carpeta) si no cuentan con soporte de su desarrollador; según el foro de PS, deberías eliminar por completo todas las carpetas vendor dentro de estos módulos, ¡pero hay que verificarlo!
REFERENCIAS
[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] ¡Aún no oficial! ver https://github.com/PrestaShop/PrestaShop/issues/17059#issuecomment-572114133