Un popular plugin de temas para wordpress que cuenta con más de 200.000 instalaciones activas contiene una vulnerabilidad de software severa y simple de explotar que, si no se parchea, podría permitir a los atacantes no autenticados comprometer una extensa gama de sitios y weblogs.

El plugin con vulnerabilidad en cuestión es ‘ThemeGrill Demo Importer‘ el que viene incluido en temas tanto gratis como Premium, y vendidos por la compañía de desarrollo de software ThemeGrill.

El plugin ThemeGrill Demo Importer fue desarrollado para permitir a los administradores de sitios de WordPress importar contenido de demostración, widgets y configuraciones de ThemeGrill, un extenso catálogo de temas para WordPress, lo que les facilita la personalización veloz tanto del tema importado como del propio lugar WordPress.

Según este informe que la compañía de seguridad de WebARX ha colgado en su página web, cuando se instala y activa un tema ThemeGrill, el complemento perjudicado ejecuta ciertas funciones con privilegios administrativos sin contrastar si el usuario que ejecuta el código está autenticado y es un administrador.

El fallo podría en algún caso dejar que los atacantes remotos no autenticados borren toda la base de datos de sitios concretos a su estado predeterminado, como paso anterior a un principios de sesión con credenciales por defecto, lo que, en último término, supondría la toma de control total del sitio.

Entrando en detalles técnicos, el fallo se encuentra en que una vez el plugin advierte que un tema ThemeGrill está instalado y activado, carga el fichero /includes/class-demo-importer.php que llama a reset_wizard_actions en admin_init en su línea 44.

La función admin_init se ejecuta no solo en el ambiente de administración sino más bien asimismo en llamadas a /wp-admin/admin-ajax.php que no requieren que un usuario se autentique.

Del mismo modo, no hay verificación de autentificación en las funciones implicadas, y solo es preciso que el factor do_reset_wordpress esté presente en la URL de cualquier página basada en el ‘admin’ de wordpress, incluyendo /wp-admin/admin-ajax.php.

Adjuntamos el código implicado tomado de la página original de WebARX, con los comentarios o bien el código intrascendente eliminado:

ThemeGrill Demo Importer

Para más información:

Critical Issue In ThemeGrill Demo Importer Leads To Database Wipe and Auth Bypass