0-day crítico en MySQL permite ejecutar comandos remotamente

mysql1

Los millones de usuarios del conocido sistema de gestión de base de datos de código abierto MySQL, se enfrentan desde hace unas horas a uno de los escenarios más complicados de manejar en lo que respecta a su seguridad. Tras la publicación por parte del investigador Dawid Gulonski de los detalles de una vulnerabilidad 0-day y una prueba de concepto, no son pocos los administradores de sistemas que han tenido que ponerse a revisar sus implementaciones de MySQL para tratar de mitigar este problema.

Funcionamiento de la vulnerabilidad

El que se haya hecho pública esta grave vulnerabilidad viene motivado principalmente por la inactividad de Oracle a la hora de solucionarla, ya que este investigador les informó del problema el pasado 29 de julio. Según la descripción de la vulnerabilidad (CVE-2016-6662) un atacante podría aprovecharla tanto local como remotamente y le pobilitaría ejecutar código arbitrario con privilegios de root, algo que le permitiría tomar el control del servidor MySQL y de los datos allí almacenados.

El atacante podría aprovechar la conexión a la base de datos vulnerable usando un usuario con privilegios limitados a través de una conexión de red o interfaces, como phpMyAdmin, o utilizar inyecciones SQL como vectores de ataque. Una vez con acceso a la base de datos, se podría inyectar líneas de código maliciosas en los ficheros de configuración my.cnf.

Según el investigador, esta vulnerabilidad afecta a todos aquellos servidores MySQL con una configuración por defecto en todas las versiones de las ramas 5.5, 5.6 y 5.7, incluyendo las versiones más recientes, y la posibilidad de explotarla es a nivel tanto local como remotamente. En la prueba de concepto publicada se observa cómo es posible la ejecución remota de código con permisos de root aprovechando esta vulnerabilidad, aunque se han omitido detalles para evitar que otros puedan replicarlo y abusar de este grave fallo de seguridad.

Además de esta vulnerabilidad, Gulonski ha publicado una segunda (CVE-2016-6663), que permitiría la explotación de esta vulnerabilidad 0-day en MySQL incluso por aquellos atacantes con pocos privilegios.

Parches y soluciones temporales

El motivo de hacer pública esta vulnerabilidad está justificado por el investigador que la descubrió, puesto que Oracle no ha reaccionado a este grave agujero de seguridad a pesar de haber sido informados hace más de 40 días. Otros gestores de bases de datos afectados, como MariaDB o PerconaDB, aplicaron los parches correspondientes el pasado 30 de agosto.

Al haberse lanzado estos parches de forma pública, cualquiera puede descargarlos y, mediante ingeniería inversa, conocer los detalles de la vulnerabilidad para comenzar a explotarla. Esto supone un riesgo muy elevado para los millones de bases de datos vulnerables existentes, sobre todo porque Oracle aún no ha movido ficha ni tiene previsto hacerlo (salvo cambios de última hora) hasta el próximo 18 de octubre, que es cuando tiene programada la siguiente actualización trimestral.

Como solución temporal, el investigador recomienda que los administradores se aseguren de que ningún usuario de la base de datos sea propietario de ningún fichero de configuración MySQL, así como también generar ficheros trampa my.cnf que no sean utilizados para el funcionamiento normal de la base de datos. Recordemos que no hay todavía parches oficiales y que estos deberán aplicarse tan pronto como estén disponibles.

Josep Albors

Microsoft soluciona numerosas vulnerabilidades en los boletines de seguridad de septiembre