Vulnerabilidad DOS en el formulario de login de FOSUserBundle

Posted by victor on September 23rd, 2013
symfony2-logoHoy ha saltado la alarma acerca de una vulnerabilidad de seguridad en FOSUserBundle  que permite realizar ataques DOS en formularios de login que no limiten en número máximo de caracteres que puede contener un password. Las versiones afectadas: [>=1.2.0, <1.2.5] [>=1.3.0, <1.3.3]. Es necesario actualizar a la nueva 1.3.3. Por lo general, en base de datos no se suelen almacenar los password en texto plano (es una mala práctica y si la estas llevando a cabo te aconsejo que lo cambies lo antes posible) sino que se almacena el resultado de aplicar n veces una función hash, como SHA-1 al password del usuario. La codificación en Symfony está delegada a los encoders, clases encargadas de aplicar un algoritmo y devolver el password del usuario, de forma que no sea legible, junto con el número de veces que se ha aplicado el algoritmo. Realizar todo esto tiene un coste computacional que está relacionado con el tamaño del password. El ataque DOS se produce cuando no se pone límite al número de caracteres que puede tener un password. Por ejemplo, según las pruebas de Fabien Potencier, usar Pbkdf2 con un password de un millón de caracteres repetido 10.000 veces requiere casi un minuto (todo esto depende del hardware sobre el que se implemente). Si quieres saber más acerca del password hashing y de como funcionan este y otros tipos de ataques para resolver de forma inversa el password a partir de un hash, te recomiendo "Salted Password Hashing - Doing it Right" de crackstation.

Comments

comments powered by Disqus