Vulnerabilidades críticas en bibliotecas ZIP populares en Swift y Flutter

Iniciado por AXCESS, Noviembre 13, 2023, 05:22:28 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Investigaciones han revelado graves vulnerabilidades descubiertas en paquetes ZIP que son ampliamente utilizados en Dart (Flutter) y Swift, lo que plantea graves riesgos de seguridad para miles de desarrolladores y aplicaciones.

Los paquetes ZIP son archivos comprimidos que contienen múltiples archivos y directorios, lo que permite a los desarrolladores agrupar convenientemente recursos, bibliotecas y otros componentes necesarios para la funcionalidad de la aplicación. Si bien los paquetes ZIP ofrecen eficiencia y facilidad de uso, también pueden ser una fuente de posibles vulnerabilidades de seguridad que los actores malintencionados pueden aprovechar.

Las vulnerabilidades encontradas son las siguientes:

•   ZIP Path Traversal: también conocido como Zip Slip, es una vulnerabilidad de seguridad que ocurre cuando la aplicación no puede validar los nombres de los archivos de las entradas ZIP durante la extracción. Permite a un atacante extraer archivos en ubicaciones arbitrarias fuera del directorio de extracción, lo que ayuda a sobrescribir datos confidenciales del usuario y, en algunos casos, puede provocar la ejecución de código si un atacante sobrescribe el archivo objeto compartido de una aplicación.

•   Suplantación de nombre de archivo ZIP: en el contexto de los archivos ZIP, hay dos estructuras de datos principales relevantes para los nombres de archivos: la entrada del directorio central y el encabezado del archivo local. Si un analizador, por ejemplo, lee el nombre del archivo del encabezado del archivo local pero luego procede a extraerlo en la ruta del directorio central, se puede suplantar un arechivo.


•   ZIP symlink path traversal: el enlace simbólico ZIP es una característica utilizada en muchas utilidades ZIP y permite que esos enlaces simbólicos apunten a archivos fuera del directorio de extracción. Esto puede suponer un riesgo de seguridad y provocar la sobrescritura de datos confidenciales o archivos de objetos compartidos, lo que podría provocar la ejecución de código.

•   Bomba ZIP: una bomba ZIP es un archivo ZIP de pequeño tamaño que contiene una enorme cantidad de datos comprimidos. Cuando se extrae, se expande hasta convertirse en un archivo enorme o consume recursos excesivos del sistema, lo que puede provocar denegación de servicio (DoS).

Paquetes ZIP a analizar


Archive
Uno de los paquetes de flutter populares para manejar archivos comprimidos es "Archive" de Brendan Duncan. Este paquete implementa formatos de archivo populares de forma nativa en Dart sin tener que pasar por los paquetes nativos específicos de la plataforma como No tienes permitido ver los links. Registrarse o Entrar a mi cuenta para Android o ZIPFoundation para iOS.
Lenguaje: Dart (Flutter)
Proyecto: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Flutter_archive
Flutter_Archive es otro paquete de Flutter para archivos comprimidos que funciona exclusivamente con archivos ZIP. Este paquete se basa en el paquete ZIP nativo de Java, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, aprovechando MethodChannel de Flutter.
Lenguaje: Dart (Flutter)
Proyecto: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

ZIPFoundation
ZIPFoundation es una biblioteca para crear, leer y modificar archivos ZIP. Está escrito en Swift y se basa en libcompression de Apple para lograr un alto rendimiento y eficiencia energética.
Lenguaje: Swift
Proyecto: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

ZIP
ZIP es un framework de Swift para comprimir y descomprimir archivos. Sencillo y rápido de usar. Construido sobre minizip.
Lenguaje: Swift
Proyecto: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

ZIPArchive (SSZIPArchive)
ZipArchive es una clase sencilla para comprimir y descomprimir archivos en iOS, macOS y tvOS.
Lenguaje: Swift
Proyecto: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Fuente:
Ostorlab
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Vía:
Segu-Info
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta