Descripción
zip es una biblioteca de Rust para archivos zip que permite leer y escribir archivos ZIP simples. Hasta la versión 9.0.4, ZipArchive considera como autoritativos los nombres de archivo del encabezado de archivo del directorio central (Central Directory File Header), mientras que ZipStreamReader extrae usando los nombres de archivo del encabezado de archivo local (Local File Header), sin conciliar los metadatos duplicados en src/read/stream.rs. Por lo tanto, un archivo comprimido especialmente manipulado puede parecer inofensivo para un componente que inspecciona el directorio central, pero hacer que un extractor en streaming escriba una ruta y un contenido distintos seleccionados por el atacante, lo que podría sobrescribir archivos utilizados por un servicio posterior. Este problema está corregido en la versión 9.0.5.
Qué hacer
Revisa si usas el producto afectado y en qué versión, y aplica la actualización o la mitigación que indique el aviso del fabricante. CISA no ha confirmado que se esté explotando; si eso cambia, esta ficha pasa a «explotada» y te avisamos en el boletín.
Versiones afectadas
- zip2 Afectadas: < 9.0.5
Según el registro de la vulnerabilidad en CVE.org, tal como lo publicó el fabricante. Confirma tu versión exacta en el aviso del fabricante.
Referencias
- Referencia en github.comgithub.com/zip-rs/zip2/security/advisories/GHSA-m665-v7pm-7grj
- Referencia en github.comgithub.com/zip-rs/zip2/commit/8068ab480ccf8daa7411424e365fcdbe6d09443e
- Referencia en github.comgithub.com/zip-rs/zip2/releases/tag/v9.0.5
Ver el texto original en inglés (CVE.org)
zip: Critical Parser Differential & Security Control Bypass via Dual-Header Inconsistencies (Zip Cloaking) Leading to Arbitrary File Overwrite & RCE
zip is a zip library for Rust that supports reading and writing simple ZIP files. Through 9.0.4, ZipArchive treats Central Directory File Header filenames as authoritative while ZipStreamReader extracts using Local File Header filenames without reconciling the duplicate metadata in src/read/stream.rs. A crafted archive can therefore appear benign to a component that inspects the central directory but cause a streaming extractor to write a different attacker-selected path and content, potentially overwriting files used by a downstream service. This issue is fixed in version 9.0.5.