Menos de dos meses después de su última publicación, de nuevo el investigador Dawid Gulonski de Legal Hackers ha publicado los detalles de dos exploits que aprovecharían sendas vulnerabilidades críticas en MySQL y sus variantes MariaDB y PerconaDB.
Estas vulnerabilidades podrían llegar a permitir la ejecución de código arbitrario, obtener privilegios de root y comprometer completamente el servidor donde se alojan estas bases de datos.
Primera vulnerabilidad
Los usuarios del popular gestor de base de datos de código abierto MySQL y sus variantes MariaDB y Percona se ven afectados si están utilizando versiones 5.5.51, 5.6.32, 5.7.14 y anteriores. Esto representa millones de instalaciones en todo el mundo y puede plantear un serio problema si los encargados de mantener estos sistemas no actualizan periódicamente.
Con respecto a las vulnerabilidades, la primera de ellas (con CVE-2016-6663) es una escalada de privilegios / condición de carrera, y permitiría a un usuario local con permisos limitados realizar una escalada de privilegios y ejecutar código arbitrario como un usuario system de la base de datos.
Con estos permisos, un atacante podría, por ejemplo, acceder a todas las bases de datos almacenadas en el sistema. Este fallo es especialmente grave si pensamos en aquellos servidores que almacenan bases de datos de empresas diferentes, algo bastante frecuente en centros de datos para optimizar recursos y que muchos usuarios utilizan por su menor precio frente a un servidor dedicado.
El asunto se complica cuando vemos que un atacante podría utilizar esta vulnerabilidad de forma conjunta con la que el mismo investigador reveló a mediados de septiembre, puesto que esto le permitiría tomar control total del servidor y no solo de las bases de datos almacenadas en él.
Segunda vulnerabilidad
En lo que respecta a la segunda vulnerabilidad, estaríamos ante un fallo que permite la escalada de privilegios hasta hacerse root que, además, permite combinarse con la anterior vulnerabilidad.
En esta ocasión, la segunda vulnerabilidad (con CVE-2016-6664) permite, una vez aprovechada la escalada de privilegios realizada sobre el sistema MySQL con la primera vulnerabilidad, obtener permisos de root en el sistema que aloja las bases de datos.
En resumen y según las palabras del propio investigador: “la combinación de estas dos vulnerabilidades permitirían a un usuario local con pocos permisos obtener permisos de root en el sistema y, a continuación, comprometer el servidor completamente”.
Mitigando el problema
Es más que probable que muchos administradores de sistemas se lleven las manos a la cabeza tras leer las noticias sobre estas vulnerabilidades. Sin embargo, tenemos buenas noticias para la mayoría de ellos. La primera es que el usuario que quiera realizar un ataque aprovechando estas vulnerabilidades ha de ser local, algo que impide ataques remotos.
Además, estas vulnerabilidades han sido solucionadas casi por completo por los desarrolladores de MySQL y Percona, publicando parches de seguridad para estos fallos de seguridad una vez que el investigador se puso en contacto con ellos de forma privada para comunicarles los detalles.
Por su parte, MariaDB tan solo ha publicado de momento un parche para la primera vulnerabilidad. En palabras de los propios desarrolladores, debido a que la segunda vulnerabilidad requiere de la primera, se le ha dado preferencia a mitigar solo una de ellas de momento, pensando en publicar un parche para la segunda en una versión futura.
Conclusión
Tanto el investigador como los desarrolladores de estos tres conocidos gestores de bases de datos han hecho su trabajo descubriendo las vulnerabilidades, reportándolas de manera responsable y publicando los parches de seguridad necesarios. Ahora es el turno de los encargados de gestionar bases de datos que utilicen los gestores afectados para aplicar estos parches y evitar así el acceso no autorizado a la información almacenada en ellas.