Vulnerabilidades de ejecución de código arbitrario y carga local de ficheros en un plugin de WooCommerce
WooCommerce es una extensión para WordPress que permite implementar tiendas de comercio electrónico utilizando la popular plataforma de blogs. Existen numerosos plugins para extender su funcionalidad o facilitar su administración. Recientemente se han encontrado dos vulnerabilidades graves que afectan a una de estas extensiones: WooCommerce Product Filter.
La primera vulnerabilidad se encuentra en uno de los “short-code” que implementa el plugin: ‘woof_products’. Al no validar correctamente el argumento ‘custom_tpl’ podría utilizarse para cargar un fichero local de la siguiente manera:
[woof_products custom_tpl=”../../../../../../../../../etc/passwd”][/woof_products]
custom_tpl se pasa como argumento a render_html, donde tampoco se valida correctamente. Fuente: http://wphutte.com |
En este punto se evalúa $pagepath, que contiene los datos sin validar de custom_tpl. Fuente: http://wphutte.com |
Este fallo no sería tan grave si no existiera la segunda vulnerabilidad, que permitiría a un usuario sin privilegios ejecutar código arbitrario en la función ‘admin-ajax.php’ y evaluar el short-code anterior, llevando a cabo el LFI:
POST /wp-admin/admin-ajax.php HTTP/1.1
[…]
action=woof_redraw_woof&shortcode=<<shortcode sin []>>