Clicky

Falla sin corregir de WordPress da a los atacantes el control total de tu sitio

Categoría: Seguridad
Visitas: 1252
falla WordPress

Un atacante puede eliminar del servidor cualquier archivo crítico como ".htaccess"

La semana pasada recibimos un aviso sobre una vulnerabilidad no parcheada en el núcleo de WordPress, que podría permitir a un usuario con pocos privilegios secuestrar todo el sitio y ejecutar en el servidor código arbitrario.

Descubierta por investigadores de RIPS Technologies GmbH, la vulnerabilidad de "eliminación de archivos arbitrarios autenticados" se informó hace 7 meses al equipo de seguridad de WordPress, pero no se reparó y afecta a todas las versiones de WordPress, incluida la actual 4.9.6

La vulnerabilidad reside en una de las funciones principales de WordPress que se ejecuta en segundo plano cuando un usuario elimina permanentemente la miniatura de una imagen cargada.

Los investigadores encontraron que la función de eliminación de miniaturas acepta a entradas de usuario no optimizadas, que si son moderadas, podrían permitir a los usuarios con privilegios limitados de al menos un autor eliminar cualquier archivo del alojamiento web, que de otro modo solo debería permitirse al servidor o administradores del sitio.

El requisito de al menos una cuenta de autor reduce hasta cierto punto de forma automática la gravedad de este error, lo que podría ser explotado por un colaborador de contenido deshonesto o un pirata informático que de alguna manera obtiene la credencial del autor utilizando phishing, reutilización de contraseñas u otros ataques.

La sección de código que hizo posible esta vulnerabilidad en WordPress Core se encuentra en el archivo wp-includes/post.php:

/wp-includes/post.php
function wp_delete_attachment( $post_id, $force_delete = false ) { ⋮ $meta = wp_get_attachment_metadata( $post_id ); ⋮ if ( ! empty($meta['thumb']) ) { // Don't delete the thumb if another attachment uses it. if (! $wpdb->get_row( $wpdb->prepare( "SELECT meta_id FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE %s AND post_id <> %d", '%' . $wpdb->esc_like( $meta['thumb'] ) . '%', $post_id)) ) { $thumbfile = str_replace(basename($file), $meta['thumb'], $file); /** This filter is documented in wp-includes/functions.php */ $thumbfile = apply_filters( 'wp_delete_file', $thumbfile ); @ unlink( path_join($uploadpath['basedir'], $thumbfile) ); } } ⋮ }

Los investigadores dicen que al usar esta falla, un atacante puede eliminar del servidor cualquier archivo crítico como ".htaccess", que generalmente contiene configuraciones relacionadas con la seguridad, en un intento de desactivar la protección.

Además de esto, eliminando el archivo "wp-config.php" - uno de los archivos de configuración más importantes en la instalación de WordPress que contiene información de conexión a la base de datos - podría obligar a todo el sitio web a volver a la pantalla de instalación, lo que supuestamente le permite al atacante reconfigurar el sitio web desde el navegador y tomar el control por completo.

Sin embargo, debe tenerse en cuenta que dado que el atacante no puede leer directamente el contenido del archivo wp-config.php para conocer el "nombre de la base de datos", "nombre de usuario mysql" y su "contraseña", puede volver a configurar el sitio específico usando un servidor de base de datos remota bajo su control.

Una vez completado, el atacante puede crear una nueva cuenta de administrador y tomar el control completo del sitio web, incluida la capacidad de ejecutar código arbitrario en el servidor.

"Además de la posibilidad de borrar toda la instalación de WordPress, que puede tener consecuencias desastrosas si no hay una copia de seguridad disponible, un atacante puede usar la capacidad de eliminación arbitraria de archivos para eludir algunas medidas de seguridad y ejecutar código arbitrario en el servidor web", dicen los investigadores.

En un vídeo de prueba de concepto publicado por los investigadores, como se muestra arriba, la vulnerabilidad funcionó perfectamente según lo descrito y obligó al sitio a volver a la pantalla de instalación.

Sin embargo, a partir de ahora, los administradores de sitios web no deben entrar en pánico debido a esta vulnerabilidad y pueden aplicar manualmente una revisión provista por los investigadores.

Esperamos que el equipo de seguridad de WordPress remienda esta vulnerabilidad en la próxima versión de su software CMS.