Vulnerabilidad en zlib que ocurre al comprimir datos especialmente diseñados

Se ha identificado una vulnerabilidad (CVE-2018-25032) en la biblioteca zlib, que provoca un desbordamiento del búfer al intentar comprimir una secuencia de caracteres especialmente preparada en los datos entrantes. En su forma actual, los investigadores han demostrado la capacidad de provocar que un proceso finalice de forma anormal. Aún no se ha estudiado si el problema podría tener consecuencias más graves.

La vulnerabilidad aparece a partir de la versión zlib 1.2.2.2 y también afecta a la versión actual de zlib 1.2.11. Cabe destacar que en 2018 se propuso un parche para corregir la vulnerabilidad, pero los desarrolladores no le prestaron atención y no lanzaron una versión correctiva (la biblioteca zlib se actualizó por última vez en 2017). La solución tampoco está incluida aún en los paquetes que ofrecen las distribuciones. Puede realizar un seguimiento de la publicación de correcciones por distribuciones en estas páginas: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD. La biblioteca zlib-ng no se ve afectada por el problema.

La vulnerabilidad ocurre si el flujo de entrada contiene una gran cantidad de coincidencias para empaquetar, a las cuales se les aplica el empaque en función de códigos Huffman fijos. En determinadas circunstancias, el contenido del búfer intermedio en el que se coloca el resultado comprimido puede superponerse a la memoria en la que se almacena la tabla de frecuencia de símbolos. Como resultado, se generan datos comprimidos incorrectos y fallan debido a la escritura fuera del límite del búfer.

La vulnerabilidad sólo puede explotarse mediante una estrategia de compresión basada en códigos fijos de Huffman. Se elige una estrategia similar cuando la opción Z_FIXED está habilitada explícitamente en el código (un ejemplo de una secuencia que provoca un bloqueo cuando se usa la opción Z_FIXED). A juzgar por el código, la estrategia Z_FIXED también se puede seleccionar automáticamente si los árboles óptimo y estático calculados para los datos tienen el mismo tamaño.

Aún no está claro si las condiciones para explotar la vulnerabilidad se pueden seleccionar utilizando la estrategia de compresión predeterminada Z_DEFAULT_STRATEGY. De lo contrario, la vulnerabilidad se limitará a ciertos sistemas específicos que utilizan explícitamente la opción Z_FIXED. Si es así, entonces el daño de la vulnerabilidad podría ser muy significativo, ya que la biblioteca zlib es un estándar de facto y se utiliza en muchos proyectos populares, incluido el kernel de Linux, OpenSSH, OpenSSL, apache httpd, libpng, FFmpeg, rsync, dpkg. , rpm, Git, PostgreSQL, MySQL, etc.

Fuente: opennet.ru

Añadir un comentario