Zip Slip (ARCH2106)
Anahtar python.security.zip-slip · Önem error · Kategori security · CWE CWE-22
Arşiv girdilerini yol doğrulaması yapmadan çıkarmak, ../ içeren girdilerin hedef dizin dışına dosya yazmasına ve dizin geçişine olanak tanır.
Hatalı
Bölüm başlığı “Hatalı”import zipfile
def extract(archive, dest): with zipfile.ZipFile(archive) as z: z.extractall(dest)import os, zipfile
def extract(archive, dest): with zipfile.ZipFile(archive) as z: for name in z.namelist(): target = os.path.realpath(os.path.join(dest, name)) if not target.startswith(os.path.realpath(dest) + os.sep): raise ValueError("unsafe path: %s" % name) z.extract(name, dest)Düzeltme
Bölüm başlığı “Düzeltme”Her girdiyi çıkarmadan önce hedef yolun çıkarma kökü içinde kaldığını doğrulayın.