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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-29780 — Демонстрирует уязвимость обхода пути в официальном примере скрипта eml-parser, позволяющую произвольную запись файлов через специально сформированные имена вложений, с PoC и исправлением. | Kitploit
Инструменты/GitHubGitHub/redyank/cve-2026-29780
Статический анализАнализ уязвимостейАнализ КодаЭксплуатацияВеб-безопасность
GitHubredyank/cve-2026-29780

CVE-2026-29780

Демонстрирует уязвимость обхода пути в официальном примере скрипта eml-parser, позволяющую произвольную запись файлов через специально сформированные имена вложений, с PoC и исправлением.

Репозиторий
165 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

Обход пути в официальном примере скрипта, приводящий к произвольной записи файлов

Краткое описание

Официальный пример скрипта examples/recursively_extract_attachments.py содержит уязвимость обхода пути, которая позволяет произвольную запись файлов за пределами целевой выходной директории. Имена вложений, извлеченные из разобранных писем, напрямую используются для формирования путей к выходным файлам без какой-либо санитизации, что позволяет имени файла, контролируемому атакующим, выйти за пределы целевой директории.

Подробности

Файл: examples/recursively_extract_attachments.py Строки: 61–64

root@kitploit:~
for a in m['attachment']:
    out_filepath = out_path / a['filename']  # No sanitization
    print(f'\tWriting attachment: {out_filepath}')
    with out_filepath.open('wb') as a_out:
        a_out.write(base64.b64decode(a['raw']))

Значение a['filename'] контролируется атакующим через специально сформированные заголовки вложений письма:

root@kitploit:~
Content-Disposition: attachment; filename="../outside/pwned.txt"

Перед записью не выполняется нормализация пути или проверка границ.

PoC

  1. Создайте вредоносный файл .eml:
root@kitploit:~
Content-Disposition: attachment; filename="../outside/pwned.txt"
  1. Запустите пример скрипта:
root@kitploit:~
python recursively_extract_attachments.py -p ./emails -o ./safe
  1. Ожидаемый результат: ./safe/pwned.txt
  2. Фактический результат: ./outside/pwned.txt ← записан за пределами целевой директории

Проверено на Kali Linux с eml-parser, установленным через pip в виртуальном окружении.

Влияние

Эта уязвимость ограничена только примером скрипта и не затрагивает основную библиотеку eml-parser. Однако, поскольку скрипт является частью официального репозитория и, вероятно, будет адаптирован для производственного использования, атакующий, предоставивший специально сформированное письмо, может добиться произвольной записи файлов в контексте выполнения.

Возможные сценарии атак включают:

  • Внедрение cron-задач: filename="../../etc/cron.d/backdoor"
  • Загрузка веб-шелла: filename="../../var/www/html/shell.php"
  • Внедрение SSH-ключей: filename="../../home/user/.ssh/authorized_keys"

Рекомендуемое исправление

root@kitploit:~
import os.path

for a in m['attachment']:
    filename = os.path.basename(a['filename'])
    out_filepath = out_path / filename

    if not out_filepath.resolve().is_relative_to(out_path.resolve()):
        print(f'[!] Skipping suspicious filename: {a["filename"]}')
        continue

    print(f'\tWriting attachment: {out_filepath}')
    with out_filepath.open('wb') as a_out:
        a_out.write(base64.b64decode(a['raw']))
Скачать инструмент