İçeriğe geç

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.

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)

Her girdiyi çıkarmadan önce hedef yolun çıkarma kökü içinde kaldığını doğrulayın.