Эксперты по информационной безопасности обнаружили пять уязвимостей в Python-модуле TarFile, одна из которых имеет критический уровень опасности и позволяет записывать файлы в любую часть файловой системы при распаковке специально подготовленных архивов.
G. Ostrov
Исследователи безопасности выявили серьезные уязвимости в Python-модуле TarFile, который входит в стандартную поставку Python и предоставляет функции для работы с tar-архивами. Было обнаружено пять уязвимостей, одна из которых классифицирована как критическая.
Критическая уязвимость CVE-2025-4517
Наиболее опасная уязвимость получила идентификатор CVE-2025-4517 и позволяет при распаковке специально оформленного архива записать файлы в любую часть файловой системы. Это может привести к:
- Повышению привилегий в системе
- Выходу за пределы изолированного контейнера
- Компрометации системы при использовании в скриптах с правами root
Уязвимость затрагивает проекты, использующие функции TarFile.extractall()
или TarFile.extract()
с параметром filter
, установленным в значение \"data\" или \"tar\". Проблема вызвана некорректной обработкой последовательности \"..\" в имени ссылки.
Дополнительные уязвимости
Помимо критической уязвимости, были обнаружены еще четыре проблемы безопасности:
CVE-2025-4330
Возможность обхода фильтра извлекаемых данных, что может привести к извлечению символических ссылок, указывающих за пределы базового каталога распаковки.
CVE-2025-4138
Возможность создания произвольных символических ссылок за пределами базового каталога при использовании параметра filter=\"data\"
.
CVE-2024-12718
Возможность изменения метаданных файлов за пределами базового каталога, включая время модификации и права доступа.
CVE-2025-4435
Неправильное поведение при установке параметра TarFile.errorlevel
в значение 0, когда файлы распаковывались вместо игнорирования.
Исправления и рекомендации
Все уязвимости были устранены в версиях Python 3.13.4 и 3.12.11. Разработчикам настоятельно рекомендуется:
- Обновить Python до последних версий
- Пересмотреть код, использующий модуль TarFile
- Избегать распаковки недоверенных архивов без дополнительных проверок
- Использовать безопасные фильтры при работе с архивами
Влияние на безопасность
Уязвимости особенно опасны для:
- Систем управления пакетами
- Контейнерных технологий
- Веб-приложений, обрабатывающих загружаемые архивы
- Автоматизированных систем обработки данных
Администраторам систем следует незамедлительно обновить версии Python и проверить приложения, использующие модуль TarFile для обработки внешних данных.
Подробная информация о уязвимостях доступна в официальном репозитории Python.
В случае каких-либо проблем напишите нам, мы поможем быстро и качественно!