Si utilizáis WPTouch en nuestro WordPress actualizad inmediatamente

0

Si utilizáis el popular Plugin WPTouch para WordPress (más de 5 millones de descargas) deberíais actualizarlo inmediatamente, ya que se ha encontrado una vulnerabilidad crítica.

WPTouch es un plugin pensado para funcionar integrado con dispositivos Apple

Durante una comprobación rutinaria llevada a cabo por sus expertos, los laboratorios Sucuri descubrieron una peligrosa vulnerabilidad que podría permitir a un usuario, sin privilegios de administrador, que esté conectado a la página (un suscriptor o autor), remitir al servidor un archivo PHP manipulado. Dicho PHP, acompañado de la correspondiente Backdoor, le otorgaría el completo control sobre el sitio web.


Versiones afectadas: Este fallo de seguridad afecta sólo a versiones 3.X de WPTouch. Los administradores que utilicen versiones 1.x y 2.x de WPTouch están fuera de peligro.


Riesgos asociados

Lo primero que debe quedar claro es que esta vulnerabilidad solo puede aprovecharse si nuestra web permite el registro de usuarios anónimos. De ser así, un atacante previamente logueado podría tomar el control de nuestro sitio web, previa inyección de una puerta trasera (remote shell) dentro de los directorios de la web, permitiéndole hacer lo que quiera dentro del sitio.

Detalles técnicos

En otra publicación previa, Sucuri mencionaba un problema con el nonce de seguridad “admin_init”. Dicho mecanismo de control no debía utilizarse como método de autenticación. En este caso, aportan otra prueba de por qué es peligroso confiar solamente en dicho elemento (en este caso, es más dificil de detectar).

En el archivo “core/class­wptouch­pro.php”, el método “admin_initialize()” era llamado por el gancho “admin_init”.

Un ejemplo de ello:

function admin_initialize() {

(…)
// load the rest of the admin scripts when we’re looking at the WPtouch Pro page
if ( $this­>admin_is_wptouch_page() ) {
(…)

} else {
$localize_params = array(
‘admin_url’ => get_bloginfo(‘wpurl’) . ‘/wp­admin’,
‘admin_nonce’ => wp_create_nonce( ‘wptouch_admin’ )
$localize_params ););

(…)
// Set up AJAX requests here
wp_localize_script( ‘wptouch­pro­other­admin’, ‘WPtouchCustom’,
}
(…)
}

Si habéis conseguido daros cuenta del nonce de administrador generado y después añadido a la cola de scripts de WordPress, probablemente podréis ver lo que pasa a continuación.

function handle_upload_file() {
$this­>cleanup_post_and_get();
header( ‘HTTP/1.1 200 OK’ );
$nonce = $this­>post[ ‘wp_nonce’ ];
if( wp_verify_nonce( $nonce, ‘wptouch_admin’ ) ) {
switch( $this­>post[ ‘file_type’] ) {
(…some upload mechanism…)
}
}
die;
}

Este comando fué generado, además, para verificar si un usuario remitía o no archivos al servidor. Como el script no utilizaba ninguna otra forma de identificación para comprobar o autenticar los privilegios del usuario para enviar archivos, era posible que cualquier usuario completar una subida ahí.

A un usuario le bastaría con:

  1. Iniciar sesión y conseguir el nonce por medio de wp-admin
  2. Enviar una petición de envío de archivo (AJAX) que contenga el nonce filtrado y la puerta trasera (backdoor)

Para un desarrollador, el reto clave es no utilizar exclusivamente los mencionados nonces, escogiendo en su lugar “current_user_can” o similar, para así definir los derechos del usuario para cada acción.

Actualizad ahora mismo

Esta vulnerabilidad ilustra a la perfección el por qué los atacantes son siempre capaces de encontrar formas de penetración. Incluso si os habéis adherido a la máxima de utilizar “privilegios mínimos”, aún podríais caer víctimas de un ataque, debido a un “minúsculo” fallo en el código, que no es infalible al estar escrito por humanos.

Revisad el siguiente enlace para obtener la descarga necesaria. Versión 3.4.3. Bastará con acceder al panel de Administración para hacerlo.

Compartir.

Sobre el Autor

Alejandro es técnico micro-informático, experto en seguridad de las TIC y apasionado de la tecnología. Colabora habitualmente en diferentes publicaciones de seguridad, software y análisis de hardware entusiasta.

Dejar una Respuesta

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR