Se ha descubierto una grave vulnerabilidad de desbordamiento de búfer global en la utilidad untgz de zlib versión 1.3.1.2. Esta falla permite a los atacantes corromper la memoria e incluso ejecutar código malicioso mediante entradas especialmente diseñadas en la línea de comandos. El fallo de seguridad reside en la función TGZfname() de la utilidad untgz, donde una llamada strcpy() sin límites procesa nombres de archivos proporcionados por el usuario sin ninguna verificación de longitud
Se ha descubierto una grave vulnerabilidad global de desbordamiento de búfer en la utilidad *untgz* de zlib versión 1.3.1.2. Esto permite a los atacantes corromper la memoria y potencialmente ejecutar código malicioso mediante entradas especialmente diseñadas en la línea de comandos.
La falla de seguridad reside en la función TGZfname() de la utilidad *untgz*, donde una llamada sin límites a strcpy() procesa nombres de archivos proporcionados por el usuario sin ninguna validación de longitud.
La vulnerabilidad ocurre cuando la utilidad copia la entrada controlada por el atacante desde la línea de comandos a un búfer global estático de tamaño fijo de solo 1.024 bytes.
Detalles técnicos
La causa raíz proviene de un manejo deficiente de la entrada: el nombre del archivo se deriva directamente de los parámetros argv[] y se copia en un arreglo global estático sin verificar los límites.
Este desbordamiento ocurre inmediatamente al entrar en la función, antes de cualquier análisis o validación del archivo. Esto hace que la vulnerabilidad sea trivialmente explotable solo a través de argumentos de la línea de comandos.
| Atributo | Detalles |
|---|---|
| ID de CVE | No asignado aún |
| Software afectado | Utilidad *untgz* de zlib |
| Versión afectada | v1.3.1.2 |
| Tipo de vulnerabilidad | Desbordamiento de búfer global |
| CWE | CWE-120 (Copia de búfer sin verificar el tamaño de la entrada) |
| Vector de ataque | Entrada de línea de comandos |
| Impacto | Denegación de servicio, corrupción de memoria, posible ejecución de código |
Investigadores de seguridad demostraron que al proporcionar un nombre de archivo que exceda los 1.024 bytes se desencadena una escritura fuera de los límites más allá del final del búfer, lo que lleva a la corrupción de la memoria.
Los posibles impactos incluyen caídas por denegación de servicio, corrupción de objetos de memoria global adyacentes y comportamiento indefinido.
Más críticamente, dependiendo de la configuración del compilador, la arquitectura del sistema, las banderas de compilación y la disposición de la memoria, los atacantes podrían llegar a ejecutar código.
Los investigadores lograron activar la vulnerabilidad usando *AddressSanitizer* (ASAN) al invocar *untgz* con un argumento de nombre de archivo de 4.096 bytes.
La salida de ASAN confirmó un desbordamiento de búfer global causado por una escritura de 2.001 bytes en la dirección de memoria vulnerable.
Dado que el desbordamiento afecta a la memoria global en lugar de la memoria de pila, la corrupción persiste más allá del alcance de la función y puede influir en el comportamiento posterior del programa.
La vulnerabilidad no requiere privilegios especiales y tiene una baja complejidad de ataque, lo que la hace particularmente peligrosa para sistemas que utilizan la utilidad *untgz* afectada de zlib.
Fuentes:
https://cybersecuritynews.com/zlib-buffer-overflow-vulnerability/

No hay comentarios:
Publicar un comentario