Zip Slip regresa a Node.js

No hace mucho tiempo, en 2018, un nuevo tipo de ataque bien olvidado tronó: Zip Slip.

Zip Slip es una vulnerabilidad de descompresión de archivos críticos generalizada que permite a los atacantes escribir archivos arbitrarios en el sistema, lo que generalmente lleva a la ejecución remota de comandos. Fue descubierto y revelado por el equipo de seguridad de Snyk en anticipación de una divulgación pública el 5 de junio de 2018 y afectó a miles de proyectos, incluidos HP, Amazon, Apache, Pivotal y muchos otros.

Puede encontrar más información sobre los detalles técnicos de Zip Slip en el  sitio web .

Desde entonces, la mayoría de los marcos e idiomas en los que se descubrieron estas vulnerabilidades se han corregido, y la vulnerabilidad no se ha escuchado durante mucho tiempo.

Pero más recientemente, un nuevo caso ha aparecido no menos interesante que los anteriores.
Zip Slip en la popular biblioteca de Node.js es "descomprimir".

El autor no se sorprendió tanto con la vulnerabilidad como con la técnica de explotar esta vulnerabilidad utilizando la condición de carrera.

Condición de carrera (nota, condición de carrera), también la competencia es un error de diseño de un sistema o aplicación multiproceso, en el que el funcionamiento del sistema o aplicación depende del orden en que se ejecutan partes del código.

Para obtener excelentes ejemplos de explotación de esta vulnerabilidad, consulte el  enlace .

Se proporciona una descripción detallada de la vulnerabilidad en los  problemas del repositorio del proyecto.

En cuanto a las características de operación, esto es lo que escribe el autor:

,   « » .zip-, yauzl , «..».

,     , .

   . ,      ,   .

,     , .  /    , .  .     - :

mkdir generic_dir
ln -s ../ generic_dir/symlink_to_parent_dir
ln -s / symlink_to_root
touch generic_dir/symlink_to_parent_dir/generic_dir/symlink_to_parent_dir/[...]/symlink_to_root/tmp/slipped_zip.txt

!

¡Ahora intenta imaginar cómo funciona! ;)

El identificador estaba reservado para esta vulnerabilidad: CVE-2020-12265.

Publicado por Egor Bogomolov, Jefe de Servicios de Seguridad de la Información, HackerU Rusia

All Articles