Foros de daboweb

SEGURIDAD INFORMATICA, Firewall, parches, vacunas, antivirus, anti troyanos, spyware etc => Seguridad Informatica - Firewall - Virus - Troyanos - Spyware - Ad Aware - Malware => Mensaje iniciado por: Danae en 09 de Julio de 2005, 11:11:28 pm

Título: Descubierto desbordamiento de búfer en Zlib
Publicado por: Danae en 09 de Julio de 2005, 11:11:28 pm
Descubierto desbordamiento de búfer en Zlib
 
Se ha descubierto una vulnerabilidad en la librería zlib que podría ser
explotada por usuarios maliciosos para provocar denegaciones de  servicio o incluso comprometer la seguridad de un sistema que ejecute un programa que a su vez haga uso de versiones afectadas de esta librería (concretamente, versiones inferiores a la 1.2.2-r1).

Zlib es una librería de compresión sin pérdidas que es utilizada por una
gran cantidad de programas.

El problema, descubierto por el equipo de auditoría de código de Gentoo,
es un desbordamiento de búfer, localizado en 'inftrees.c'. La vulnerabilidad se puede dar a la hora de procesar streams corruptos de
datos comprimidos, lo que puede ser aprovechado por un atacante malicioso para provocar la caída del programa que usa esta librería, o
incluso para ejecutar código arbitrario con los privilegios de la aplicación vulnerable.

Diversas plataformas (Gentoo en sí, Debian, FreeBSD, SuSE, Red Hat,
etc.) han publicado ya actualizaciones para solventar el problema. Se
recomienda actualizar a la mayor brevedad posible, y posteriormente
recompilar las aplicaciones que puedan verse afectadas por este problema.

Aunque oficialmente aun no ha salido el parche en la página web de
zlib, desde otras distribuciones como Gentoo se facilita un diff que
reproducimos a continuación:

>>>>>
- --- inftrees.c  2005-07-02 08:56:13.000000000 -0400
+++ inftrees.c  2005-07-02 08:57:15.000000000 -0400
@@ -134,7 +134,7 @@
         left -= count[len];
         if (left < 0) return -1;        /* over-subscribed */
     }
- -    if (left > 0 && (type == CODES || (codes - count[0] != 1)))
+    if (left > 0 && (type == CODES || max != 1))
         return -1;                      /* incomplete set */

     /* generate offsets into symbol table for each length for sorting */

Fuente: www.hispasec.com