![]() |
|
El Equipo de Respuesta ante Incidentes de Seguridad de la Información del Centro Criptológico Nacional, CCN-CERT, informa de un grave fallo de seguridad en MariaDB y MySQL, versiones 5.1.61, 5.2.11, 5.3.5, 5.5.22 y anteriores de ambos motores de base datos, siempre que hayan sido compiladas con librerías que permiten que la rutina memcmp() pueda llegar a devolver enteros fuera del rango de -128 a 127. Descripción Cuando un usuario se conecta a MariaDB/MySQL, se genera un token (un hash SHA a partir de su contraseña y una cadena al azar) y se compara con el valor esperado. Debido a una serie de funciones incorrectas, puede ocurrir que el token y el valor esperado se consideren iguales, incluso si la función memcmp() devuelve un valor distinto de cero. En este caso, MySQL/MariaDB puede pensar que la validación es correcta, aunque no lo sea. Debido a que el protocolo utiliza cadenas aleatorias, la probabilidad de provocar este error es de aproximadamente de 1 sobre 256. Esto significa que, si se conoce un nombre de usuario para conectarse (y root casi siempre existe), podremos conectarnos con "cualquier" contraseña con repetidos intentos de conexión. Unos 300 intentos sólo nos llevarán una fracción de segundo, así que básicamente la protección con contraseña de la cuenta es como si no existiera. Además cualquier cliente puede hacerlo, no hay necesidad de una biblioteca libmysqlclient especial. Sistemas operativos vulnerables:
El script en bash intenta conectar como root con la siguiente sentencia: for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done El exploit se encuentra disponible públicamente. Este código en Python busca la dirección IP del servidor MySQL y lanza el cliente MySQL repetidamente hasta que el cliente consigue explotar la vulnerabilidad como root. Mitigación La primera regla para securizar MySQL es no exponer la base de datos en la red de manera pública. La mayoría de las distribuciones de Linux configuran el acceso al demonio de MySQL sólo para localhost. En caso de que sea necesario habilitar el acceso remoto al servicio, MySQL también proporciona controles de acceso basados en host. Lo más fácil es modificar el archivo my.cnf con el fin de restringir el acceso al sistema local. Busca la sección [mysqld] y cambia (o añade una nueva línea para configurar) el parámetro "bind-address" a "127.0.0.1". Reinicia el servicio de MySQL para aplicar esta configuración. La siguiente recomendación claramente es actualizar o parchear la base de datos. Oracle ya corrigió el error en MySQL, bug id 64884, con las versiones MySQL 5.1.63 y 5.5.24, ambas publicadas hace un mes. La corrección aplicada es un único cambio en una línea; también hay un parche similar disponible para MariaDB. En breve, se espera que las distintas distribuciones de Linux vaya publicando parches para sus correspondientes versiones de MySQL. Más información MySQL AB (Bug #64884 logins with incorrect password are allowed), 2012-04-06 OSS-SEC Mailing List (Security vulnerability in MySQL/MariaDB sql/password.c ), 2012-06-09 Rapid 7 (CVE-2012-2122: A Tragically Comedic Security Flaw in MySQL), 2012-06-11 |
|
Atentamente, Su misión es ser el centro de alerta y respuesta nacional que coopere y ayude a las administraciones públicas a responder, de forma rápida y eficiente, a los incidentes de seguridad que pudieran surgir y afrontar de forma activa las nuevas amenazas a las que hoy en día están expuestas. La finalidad principal del CCN-CERT es contribuir a la mejora del nivel de seguridad de los sistemas de información de la Administración Pública española. La comunidad a la que presta servicio está constituida por el conjunto de organismos de las distintas administraciones: general, autonómica y local. --------------------- Fingerprint: 4A7D 155F 38FA 2204 55F8 5E4C A62B AB99 7527 F5AF Descarga: https://www.ccn-cert.cni.es/index.php?option=com_docman&task=doc_download&gid=113&lang=es
Fingerprint: 0D4D BD59 ADCB 5466 0FB6 2529 C57E 8849 CE7B 4475 Descarga: https://www.ccn-cert.cni.es/index.php?option=com_docman&task=doc_download&gid=114&lang=es AVISO DE CONFIDENCIALIDAD: |
|
© 2012 Centro Criptológico Nacional - C/Argentona, 20 28023 MADRID | www.ccn-cert.cni.es |