PHP 5.3.8 corrige un fallo introducido por la propia PHP 6 días atrás

El pasado día 17 de agosto, se publicaba la nueva versión estable (5.3.7) del popular lenguaje de programación PHP. Incluía la corrección de un error de seguridad en la función “crypt” al utilizarse para generar contraseñas con “sal” que podría causar un desbordamiento de memoria intermedia. Seis días después lanzan una nueva versión para corregir un error introducido en la corrección.

La función “crypt” de PHP, permite a los usuarios generar el hash de una cadena utilizando un algoritmo de cifrado. Acepta además un segundo valor que sería un valor hash (MD5, Blowfish o DES) que se usa de sal para la generación a su vez del hash de una contraseña. Los hashes de contraseñas con sal intentan evitar los ataques de diccionario. La versión 5.3.7 corregía un desbordamiento de de memoria intermedia en esta función.

Pero al corregir este error, el equipo de desarrollo de PHP ha introducido otro que, como mínimo, no permitía el correcto funcionamiento de la función y además introducía otro potencial problema de seguridad. En lugar de devolver el hash correcto calculado con la cadena, la función “crypt” devolvía el mismo valor de la sal ya introducido como segundo parámetro cuando se usaba una sal MD5. Si se utilizaba sal Blowfish o DES, se calculaba correctamente.

Ej:

printf(“MD5: %s\n”, crypt(‘password’, ‘$1$U7AjYB.O$’));

Debía devolver: MD5: $1$U7AjYB.O$L1N7ux7twaMIMw0En8UUR1 pero en realidad devolvía: MD5: $1$U7AjYB.O

Es destacable en este caso que el grave problema ha dejado a algunos usuarios con aplicaciones inservibles o bien totalmente expuestas, porque según se utilizase esta función, se validaría cualquier contraseña en ciertos escenarios.

PHP no ha tardado en reaccionar, y una vez identificado el error, han publicado una nueva revisión del código en el repositorio oficial, de forma que ya está disponible la versión estable 5.3.8, que soluciona este fallo.

Mas información en este enlace.

Fuente: Hispasec

Share

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.