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.

Fuente:  http://www.hispasec.com/unaaldia/4686/

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.

Más información:

crypt() returns only the salt for MD5
https://bugs.php.net/bug.php?id=55439

PHP 5.3.8 (Current stable)
http://php.net/downloads.php

Autor: Fernando Ramírez
[email protected]

matiasmascaDesarrolloSeguridadPHP,seguridadEl 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...comunidad virtual para compartir y difundir: información, conocimiento y experiencias relacionadas con las Tecnologías de la Información y la Comunicación.