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

[ad_1]

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 java.util.zip para Android o
ZIPFoundation para iOS.

Lenguaje: Dart (Flutter)

Proyecto:
https://pub.dev/packages/archive

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, java.util.zip, aprovechando
MethodChannel de Flutter.

Lenguaje: Dart (Flutter)

Proyecto:
https://pub.dev/packages/flutter_archive

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:
https://github.com/weichsel/ZIPFoundation

ZIP

ZIP es un framework de Swift para comprimir y descomprimir archivos.
Sencillo y rápido de usar. Construido sobre minizip.

Lenguaje: Swift

Proyecto:
https://github.com/marmelroy/Zip

ZIPArchive (SSZIPArchive)

ZipArchive es una clase sencilla para comprimir y descomprimir archivos en
iOS, macOS y tvOS.

Lenguaje: Swift

Proyecto:
https://github.com/ZipArchive/ZipArchive

Fuente:
Ostorlab

[ad_2]

Source link

Los comentarios están cerrados.