Dos graves bugs en MySQL permiten tomar control del servidor

Dos graves bugs en MySQL permiten tomar control del servidor

Dos vulnerabilidades graves en MySQL, MariaDB y Percona Server for MySQL permiten obtener privilegios de root en servidor afectado. ¡Parchea ahora mismo!

Dos vulnerabilidades descubiertas en MySQL y varios de sus forks permiten la ejecución de código arbitrario y escala de privilegios. La primera, catalogada como CVE-2016-6663, es una falla basada en algo llamado Condición de Carrera y permitiría a un usuario con acceso a una Base de Datos en un contexto de pocos privilegios (CREATE/INSERT/SELECT) ejecutar código arbitrario como el usuario de sistema de MySQL, virtualmente otorgándole acceso a todas las Bases de Datos alojadas en el servidor.

La falla ocurre porque ciertas operaciones en los archivos temporales creados por el comando REPAIR TABLE no se manejan adecuadamente. Al ejecutar este comando, los usuarios pueden especificar la ruta del directorio donde se almacenará la nueva tabla. Si durante el proceso de reparación, un atacante puede desvincular la tabla temporal y reemplazarla por un link simbólico a un directorio de sistema (/var/lib/mysql) antes de que sea bloqueada, podría ser capaz de aplicar permisos arbitrarios en el directorio de datos. Como resultado, el atacante obtendría acceso a una shell de MySQL que le permitiría ejecutar código arbitrario.

La segunda vulnerabilidad catalogada como CVE-2016-6664 permite a un atacante que haya logrado explotar la vulnerabilidad anterior, escalar privilegios dentro del sistema afectado pudiendo obtener acceso root, haciéndose con el control total del servidor. Esta falla está relacionada con la manera en como el gestor de logs maneja los archivos.

Un atacante que haya obtenido acceso como la cuenta de sistema MySQL, podría reemplazar el archivo error.log, ubicado típicamente en /var/log, con un vínculo simbólico hacia un archivo arbitrario de sistema, permitiéndole escalar privilegios y hacerse con la cuenta de root del servidor.

Quizás te interese:   Ven y te cuento lo que paso esta semana

Esto ocurre porque en el script del mysqld_safe wrapper existe un loop que se ejecuta en caso de que el proceso falle y recrea el archivo log si no existe. Luego cambia los privilegios del mismo, usando como propietario el usuario de MySQL. En caso de que el archivo se haya reemplazado por un vínculo simbólico, los permisos se aplicarán al destino del vínculo.

Las versiones vulnerables para CVE-2016-6663 son:
MariaDB
< 5.5.52
< 10.1.18
< 10.0.28

MySQL
<= 5.5.51
<= 5.6.32
<= 5.7.14

Percona Server
< 5.5.51-38.2
< 5.6.32-78-1
< 5.7.14-8

Percona XtraDB Cluster
< 5.6.32-25.17
< 5.7.14-26.17
< 5.5.41-37.0

Las versiones vulnerables para CVE-2016-6664 son:
MySQL
<= 5.5.51
<= 5.6.32
<= 5.7.14

MariaDB
Todas

Percona Server
< 5.5.51-38.2
< 5.6.32-78-1
< 5.7.14-8

Percona XtraDB Cluster
< 5.6.32-25.17
< 5.7.14-26.17
< 5.5.41-37.0

También han liberado pruebas de concepto y más detalles de las vulnerabilidades CVE-2016-6663  y CVE-2016-6664 , así que es posible que cualquiera pueda explotar estas fallas sin mucho problema.

Las vulnerabilidades ya fueron parchadas en MySQL y Percona, por lo que deberías actualizar cuanto antes. En el caso de MariaDB, han solucionado la primera vulnerabilidad y ya que la segunda no se puede explotar directamente planean parchar la vulnerabilidad de escala de privilegios en un release posterior.

En caso de que no puedas parchar en este momento, los investigadores recomiendan deshabilitar el uso de link simbólicos para mitigar esta falla agregando  symbolic-links=0 en el my.cnf.

Fuente: SlashDot

Añadir Comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.