Zip Slip revient à Node.js

Il n'y a pas si longtemps, en 2018, un nouveau type d'attaque bien oublié a tonné - Zip Slip.

Zip Slip est une vulnérabilité répandue de décompression des archives critiques qui permet aux attaquants d'écrire des fichiers arbitraires dans le système, ce qui conduit généralement à l'exécution à distance de commandes. Il a été découvert et divulgué par l'équipe de Snyk Security en prévision d'une divulgation publique le 5 juin 2018 et a affecté des milliers de projets, notamment HP, Amazon, Apache, Pivotal et bien d'autres.

De plus amples informations sur les détails techniques de Zip Slip sont disponibles sur le  site Web .

Depuis lors, la plupart des frameworks et langages dans lesquels ces vulnérabilités ont été découvertes ont été corrigés, et la vulnérabilité n'a pas été entendue depuis longtemps.

Mais plus récemment, un nouveau cas est apparu non moins intéressant que les précédents.
Zip Slip dans la bibliothèque populaire pour Node.js est «décompresser».

L'auteur n'a pas surpris tant par la vulnérabilité que par la technique d'exploitation de cette vulnérabilité en utilisant la Race Condition.

Condition de concurrence (note, Condition de concurrence), également la concurrence est une erreur dans la conception d'un système ou d'une application multithread dans laquelle le fonctionnement du système ou de l'application dépend de l'ordre dans lequel les parties du code sont exécutées.

Pour d'excellents exemples d'exploitation d'une telle vulnérabilité, consultez le  lien .

Une description détaillée de la vulnérabilité est donnée dans les  numéros du référentiel du projet.

Quant aux caractéristiques de fonctionnement - c'est ce que l'auteur écrit:

,   « » .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

!

Essayez maintenant d'imaginer comment cela fonctionne! ;)

L'identifiant était réservé à cette vulnérabilité: CVE-2020-12265.

Publié par Egor Bogomolov, chef des services de sécurité de l'information, HackerU Russie

All Articles