Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2025-4138_tarfile_filter_bypass — CVE-2025-4138 - Произвольная запись файлов в Python вне директории извлечения | Kitploit
Инструменты/GitHubGitHub/thefizzyfish/cve-2025-4138_tarfile_filter_bypass
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийCTFТестирование на Проникновение
GitHubthefizzyfish/cve-2025-4138_tarfile_filter_bypass

CVE-2025-4138_tarfile_filter_bypass

CVE-2025-4138 - Произвольная запись файлов в Python вне директории извлечения

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
36 месяцев назадЕщё не проверено

CVE-2025-4138 — Обход фильтра filter="data" в Python tarfile

Произвольная запись файлов за пределами каталога распаковки через цепочку симлинков PATH_MAX.

Затронутые версии

  • Python 3.12.0 – 3.12.10
  • Python 3.13.0 – 3.13.3
  • Исправлено в 3.12.11 / 3.13.4

Автор:

Автор: Калеб Браун (Google)

Как это работает

Фильтр данных tarfile в Python проверяет цели симлинков с помощью os.path.realpath(). Когда разрешенный путь превышает PATH_MAX (4096 байт на Linux), realpath() молча прекращает разрешение и добавляет оставшиеся компоненты — включая ../ — как литеральные строки. Фильтр видит безопасный путь; ядро следует реальному обходу.

Эксплойт создает tar-архив из четырех этапов:

  1. Цепочка симлинков — 16 уровней длинных каталогов (по 247 символов) с короткими псевдонимами симлинков (a→ddd..., b→ddd...). Это раздувает разрешенный путь до ~3968 байт.
  2. Поворотный симлинк — ../ × 16 в конце цепочки. realpath() переполняется и не может его разрешить. Ядро возвращается к корню распаковки.
  3. Симлинк побега — проходит через поворотный симлинк, вверх к / и вниз к целевому каталогу.
  4. Файл полезной нагрузки — записывается через симлинк побега в целевой путь от root.

Использование

Чтобы добавить/заменить authorized_keys для пользователя root

Создайте SSH-ключ в /tmp

root@kitploit:~
ssh-keygen -t ed25519 -f /tmp/key -N ""

Создайте файл evil.tar

root@kitploit:~
python3 CVE-2025-4138_tarfile_filter_bypass.py \
    -o evil.tar \
    -t /root/.ssh/authorized_keys \
    -p /tmp/key.pub \
    -m 0600
ФлагОписание

Ссылки

  • NVD — CVE-2025-4138
  • GHSA-hgqp-3mmf-7h8f

Только для авторизованного тестирования безопасности и использования в CTF.

Скачать инструмент
-o
Путь к выходному tar-файлу
-tАбсолютный путь к файлу для записи на цель
-pЛокальный файл для использования в качестве содержимого полезной нагрузки
-mВосьмеричные права доступа к файлу (по умолчанию: 0644)