Arreglan la más antigua vulnerabilidad de la historia en Zlib/DEFLATE algoritmo de compresión

Aunque es muy probable que nunca haya oído hablar de Zlib, es casi seguro que lo ha usado en algún momento. En su sitio web se describe a este producto como una biblioteca de compresión masivamente elegante pero delicadamente discreta y además gratuita, siendo la principal alternativa a herramientas como PKZIP, WinRAR y 7-Zip.

El algoritmo de compresión de Zlib se conoce simplemente como DEFLATE. Aunque el algoritmo era originalmente parte de una patente para su uso en el software de compresión comercial PKZIP, se adoptó como estándar de Internet en RFC 1951 DEFLATE Compressed Data Format Specification versión 1.3.

RFC 1951 señala que, a pesar de la patente de la versión del proceso de PKZIP, el formato se puede implementar fácilmente de una manera que no está cubierta por patentes. Irónicamente, Zlib y su herramienta complementaria gzip son probablemente los más conocidos por los usuarios de Unix/Linux, porque se introdujeron como reemplazo de la otrora ubicua herramienta Unix compress, que realizaba una función similar con un tipo similar de algoritmo.

Pero los temores de que compress quedara atrapada en los argumentos de patente significaron que la comunidad de Unix buscó un equivalente sin trabas que no desapareciera repentinamente del uso debido a los argumentos legales sobre su procedencia. Zlib y gzip, basados en el conocido y confiable algoritmo DEFLATE, fueron la respuesta a este dilema.

Numerosos esquemas de compresión modernos brindan una compresión significativamente mejor, principalmente al usar mucha más memoria para realizar un seguimiento del texto repetido o al equipar cada extremo con un diccionario sustancial de cadenas de texto repetidas con frecuencia. DEFLATE sigue siendo el esquema de compresión más común, ya que se ha utilizado ampliamente durante tanto tiempo y está integrado en formatos de archivo generalizados.

Del mismo modo, una gran cantidad de páginas web se comprimen para su transmisión mediante Zlib, aunque el algoritmo Brotli de Google es ampliamente compatible con servidores web y navegadores. Esto quiere decir que muchas aplicaciones incluirán código no solo para descomprimir datos Zlib cuando los lea, sino también para comprimirlos en formato Zlib cuando guarde o envíe datos, porque DEFLATE es una especie de lingua franca para datos comprimidos.

Cualquiera de estas aplicaciones, tal vez la mayoría, utilizará la implementación Zlib de DEFLATE, a menudo en forma de una biblioteca compartida llamada libz.so o LIBZ. DLL.

Con un legado tan largo y con un algoritmo bloqueado como estándar de Internet en 1996, seguro creerá que en Zlib hay decenas de errores críticos, como los que conducen a la ejecución remota de código (RCE).

Tavis Ormandy, especialista de Google, reportó la detección de una falla inusual en el código de Zlib, descubriendo que el error había existido en los sistemas afectados por al menos 17 años.

Estos problemas fueron descritos como errores de memoria que pueden ocurrir en cualquier lugar en el que un programador no tenga en cuenta qué datos se escriben dónde, pero en el software de compresión es mucho más común encontrar este tipo de errores en el código que expande los datos de su formato comprimido, sobre todo porque no se puede determinar de forma fiable cuánto espacio de memoria necesitará para descomprimir todo de manera segura hasta que realmente intente descomprimirlo.

Al pasar el reporte, se consideró que la falla debía recibir un identificador CVE de 2018. El error recibió la clave CVE-2018-25032, siendo abordado esta misma semana. Los usuarios de distribuciones Linux deberán consultar más información sobre los métodos de mitigación para esta falla.

Para conocer más sobre riesgos de seguridad informática, malware, vulnerabilidades y tecnologías de la información, no dude en ingresar al sitio web del Instituto Internacional de Seguridad Cibernética (IICS).