[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.