Skip to content

Vulnerabilidad en WordPress iThemes Security (Better WP Security)

Wordpress Ithemes Security

Se ha encontrado una vulnerabilidad importante en WordPress iThemes Security (anteriormente Better WP Security) en las últimas horas, como podéis consultar en Seclists.org. Los backups y log almacenados por este complemento podrían ser accesibles a un atacante externo. Better WP Security es un complemento que nos permite supervisar y mejorar la seguridad de nuestra instalación CMS.

El pasado día 26 de Febrero, el experto en seguridad Nicolás Chatelain -de la firma Sysdream- comunicó a iThemes el problema de seguridad en su plataforma. 3 días después fué contestado en forma de nueva versión (5.3.1) por parte de los desarrolladores.

Vulnerabilidad en WordPress iThemes Security

Un error en la función a través de la que Wordpress iThemes Security gestiona su gestión de backup estaría poniendo en peligro los archivos de copia de seguridad y LOG. Por defecto, cuando se utiliza la característica backup de bases de datos en sistema de archivos (database backup on filesystem), iThemes coloca estos archivos en un directorio accesible por el público en general.

wp-content/uploads/ithemes-security/backups

El archivo .htaccess es generado durante el ajuste inicial y actualización del plugin, solamente si el directorio wp-content/uploads/ithemes-security/backups existe, o bien el directorio wp-content/uploads/ithemes-security/logs. Este directorio NO EXISTE de forma predefinida.

Vulnerabilidad en WordPress iThemes Security (Better WP Security)

Cuando se ejecuta la creación de una copia de seguridad, la clase ITSEC_Backup crea un directorio nuevo, sin ningún archivo .htaccess en su interior. Lo mismo se hace con el salvado de logs. Si el servidor web tiene el listado de directorios habilitado, entonces cualquier perona podría descargar la copia de seguridad completa de la base de datos, así como visualizar los archivos de LOG.

En cuanto a la gravedad de este fallo de seguridad, podemos catalogarla como elevada, con un vector de acceso remoto y una puntuación CVSS de 7,5 puntos en una escala de 10. Podemos decir que es algo grave, aunque por suerte fácil de solucionar.

Código vulnerable

El código con fallos se encuentra en la ruta core/modules/backup/class-itsec-backup.php, línea 246:

if ( ! is_dir( $itsec_globals[‘ithemes_backup_dir’] ) ) {
@mkdir( trailingslashit( $itsec_globals[‘ithemes_dir’] ) . ‘backups’ );
}

También hay un fragmento en core/class-itsec-logger.php, line 31 :

//Make sure the logs directory was created
if ( ! is_dir( $itsec_globals[‘ithemes_log_dir’] ) ) {
@mkdir( trailingslashit( $itsec_globals[‘ithemes_dir’] ) . ‘logs’ );
}

La aplicación crea el directorio de copia de seguridad/log, pero NO el archivo .htaccess que debería estar dentro.

Solución a la vulnerabilidad

  1. Para solucionar el problema, podemos hacer dos cosas. Bastará con añadir un archivo index por defecto, dentro de la citada carpeta de backup, cuando se cree el directorio o se almacenen los backups fuera de la raíz web.
  2. Otro paso recomendado para taparla es actualizar WordPress iThemes Security a la versión 5.3.1. Esto es algo que podéis hacer desde el mismo panel del plugin en WordPress.

 

deweloper View All

Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.

Deja un comentario