Перейти к содержимому

Пост канала

Zen of Python
  1. фото

    Фильтры распаковки tar и data в tarfile создавали каталоги за пределами каталога назначения. Стан из Ирландии завёл issue 18 августа, исправление влили в main 19 августа. Имя элемента в архиве вида ../escaped.evil/../dest/sub/file выходит из назначения и возвращается обратно. Проверка контейнмента смотрит на итоговый путь после realpath, а он оказывается внутри dest — значит, элемент считается безопасным. Но промежуточные каталоги создаются по имени как оно записано, и ../escaped.evil появляется снаружи. Правка в Lib/tarfile.py занимает семь строк: если среди компонентов имени есть .., имя прогоняется через os.path.normpath до вычисления целевого пути. В документации к этому сразу добавлена оговорка — нормализация убирает внутренние .., а это меняет смысл имени, если оно проходит через символические ссылки. Запись легла в Misc/NEWS.d/next/Security. Бэкпорты в 3.14, 3.13 и 3.12 влиты, в 3.15, 3.11 и 3.10 пока открыты. @zen_of_python

    Открыть в MAX
    Просмотры
    78
    ER
    1,3%
    Реакции
    1