Boletines de Vulnerabilidades |
Vulnerabilidad en MySQL y MariaDB |
|
Clasificación de la vulnerabilidad |
|
| Propiedad | Valor |
| Nivel de Confianza | Oficial |
| Impacto | Obtener acceso |
| Dificultad | Avanzado |
| Requerimientos del atacante | Acceso remoto sin cuenta a un servicio estandar |
Información sobre el sistema |
|
| Propiedad | Valor |
| Fabricante afectado | Comercial Software |
| Software afectado |
Ubuntu Linux 64-bit ( 10.04, 10.10, 11.04, 11.10, 12.04) OpenSuSE 12.1 64-bit MySQL 5.5.23-log Fedora 16 64-bit Arch Linux (versión sin especificar) |
Descripción |
|
|
MySQL y MariaDB, dependiendo de la versión/compilación de la función memcmp() utilizada, son vulnerables en su procedimiento de verificación de contraseña, lo que podría permitir el inicio de sesión no autorizado. Sergei Golubchik, coordinador de seguridad de MariaDB (un branch de la base datos MySQL), ha descubierto un error en la verificación de la contraseña de acceso. Este procedimiento calcula un valor en función de la contraseña del usuario y un valor aleatorio, de forma que, cuando un usuario trata de autenticarse, se calcula este valor y se envía a la BBDD que lo compara con el valor esperado. Si estos dos valores son iguales se permite el acceso. Para realizar esta comparación se utiliza la función memcmp y se supuso que ésta siempre devolvía un valor entre -127 y 127. Pero en algunas plataformas y dependiendo de las directivas de compilación puede devolver un valor fuera de este rango previsto, lo que puede producir un error de casting y ser interpretado como un 0, lo que significa que los valores son iguales y por tanto que la contraseña es válida. Esta vulnerabilidad ha recibido el identificador CVE-2012-2122. En el parche propuesto se verifica el valor devuelto por la función memcmp: return test(memcmp(hash_stage2, hash_stage2_reassured, HA1_HASH_SIZE)); En versiones vulnerables, explotar esta vulnerabilidad es sencillo porque la posibilidad de que un valor fuera del rango sea considerado como 0 es de 1 entre 256; lo que se puede conseguir con un sencillo script que trate de autenticarse con el usuario root, que existe por defecto en estas BBDD. |
|
Solución |
|
|
Hasta que el fabricante publique un parche oficial y éste se aplique a los paquetes de las distintas distribuciones se recomienda configurar la BBDD para que sólo acepte conexiones de equipos autorizados. Por defecto, la mayor parte de distribuciones Linux sólo aceptan sesiones desde el mismo host configurando el parámetro bind-address al valor loopback. |
|
Identificadores estándar |
|
| Propiedad | Valor |
| CVE | CVE-2012-2122 |
| BID | |
Recursos adicionales |
|
|
Security vulnerability in MySQL/MariaDB sql/password.c http://seclists.org/oss-sec/2012/q2/493 CVE-2012-2122: A Tragically Comedic Security Flaw in MySQL https://community.rapid7.com/community/metasploit/blog/2012/06/11/cve-2012-2122-a-tragically-comedic-security-flaw-in-mysql |
|
Histórico de versiones |
||
| Versión | Comentario | Fecha |
| 1.0 | Aviso emitido | 2012-06-11 |














