Pack de release candidates para Python por motivos de seguridad

La Python Software Foundation ha anunciado hoy la disponibilidad inmediata de las nuevas versiones candidatas para Python 2.6.8, Python 2.7.3, Python 3.1.5 y Python 3.2.3, todas ellas, con parches de seguridad.

El motivo principal del lanzamiento se debe al fix de un problema de seguridad que afecta a todas las versiones actualmente soportadas de Python que se da en todos los tipo de base "hash", los diccionarios y los objetos de tipo set.

Las nuevas versiones de Python 2.7.3 y Python 3.2.3 incluyen el parche de seguridad como parte normal del set de bug fixes de sus respectivas ramas mientras que los parches de las versiones 2.6 y 3.1 se añaden como mantenimiento solo por motivos de seguridad.

El problema de seguridad explota los diccionarios de Python y las implementaciones de set. Procesar entradas especialmente manipuladas llevaban al intérprete a procesar tiempos de computación extremadamente largos que daban como resultado ataques de denegación de servicio.

Los diccionarios y los sets en Python usan tablas de hashes para proveer de amortización en las operaciones de tiempo constante. Las tablas hash requieren una función hash bien distribuida para difundir los datos de forma homogénea en las tablas.

El exploit consiste en que un atacante puede calcular miles de claves con hashes de colisión, esto provoca una complejidad algorítmica de segundo grado cuando las tablas hash se construyen. Para aliviar el problema, las nuevas versiones añaden aleatoriedad a los tipos de cadena (str/bytes en Python 3 y str/unicode en Python 2), datetime.date y datetime.datetime.

Como efectos secundarios destacar que esto causa más aleatoriedad en el orden de los diccionarios y sets (aunque como bien sabe el lector ambos contenedores nunca han garantizado el orden de sus índices) que ahora será diferente entre ejecuciones del intérprete.

Las descargas las podemos encontrar en los siguientes enlaces: http://python.org/download/releases/2.6.8/ http://python.org/download/releases/2.7.3/ http://python.org/download/releases/3.1.5/ http://python.org/download/releases/3.2.3/

Via | The Python Software Foundation

Portada de Genbeta