Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-33017-Lab — CVE-2026-33017の再現可能なラボ。Langflowにおける未認証のRCEです。Docker化された脆弱なサービスと、公開ビルドエンドポイントを介したコード実行を実証する最小限の害のPoCが含まれています。 | Kitploit
ツール/GitHubGitHub/rootdirective-sec/cve-2026-33017-lab
脆弱性分析エクスプロイトウェブアプリケーション悪用論文と研究学習と教育ラボと実践
GitHubrootdirective-sec/cve-2026-33017-lab

CVE-2026-33017-Lab

CVE-2026-33017の再現可能なラボ。Langflowにおける未認証のRCEです。Docker化された脆弱なサービスと、公開ビルドエンドポイントを介したコード実行を実証する最小限の害のPoCが含まれています。

リポジトリを見る
176ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-33017 — Langflow 未認証RCEラボ

エグゼクティブサマリー

CVE-2026-33017は、Langflowにおける**未認証リモートコード実行(RCE)**の脆弱性であり、公開ビルドエンドポイントが攻撃者制御のフローデータを受け入れ、カスタムコンポーネントコードがサーバー上で実行されることを可能にします。

このラボでは、検証フローは以下の通りです:

  1. 自動ログインフローを通じてアクセストークンを取得する
  2. 新しいPUBLICフローを作成する
  3. 攻撃者制御のコンポーネントコードを公開ビルドエンドポイントに送信する
  4. job_idを受け取る
  5. ビルドイベントAPIを通じて結果をポーリングする
  6. コンポーネント出力から直接プルーフオブジェクトを読み取る

プルーフはLangflow APIのイベントメカニズムを通じて直接取得されるため、結果はシステムインターフェース自体を通じて観察可能です。


このリポジトリの範囲

このドキュメントは脆弱性のみのラボを提示します。

現時点では、docker composeにはvulnという1つのサービスのみが含まれています。これは、このプロジェクトが実アーティファクトのみのアプローチに従い、公式の修正済みアーティファクトに基づかないパッチ適用済み環境を避けるためです。


このラボで検証された動作

このラボでは、以下の動作が検証されています:

  • 脆弱なLangflowインスタンスがhttp://localhost:7861で実行される
  • バージョンエンドポイントが1.8.1を返す
  • 公開フローを作成できる
  • build_public_tmpがjob_idを返す
  • PoCがイベントのポーリングを継続できる
  • プルーフオブジェクトがAPIを通じて返される
  • 攻撃者制御のコードがLangflowランタイム内で実行される

プルーフオブジェクトの例:

{
  "canary": "lf33017-c14fc1c9",
  "id_output": "uid=1000(user) gid=0(root) groups=0(root)",
  "whoami": "user",
  "hostname": "155aa3fd5e2a",
  "cwd": "/app",
  "python_version": "3.12.12"
}

主要な証拠は以下の通りです:

  • id_output
  • whoami
  • hostname
  • cwd
  • python_version

上記の情報は、攻撃者制御のコードが実際にサーバー側で実行されたことを示しています。


リポジトリ構成

.
├── docker-compose.yml
├── vuln/
│   └── Dockerfile
├── poc/
│   └── poc.py
├── README.md
└── .gitignore

要件

  • LinuxまたはmacOS
  • Docker DesktopまたはDocker Engine
  • Docker Compose v2
  • Python 3

サービス概要

vuln

  • 脆弱なLangflowインスタンス
  • バインドポート:7861 -> 7860
  • localhostでCVE-2026-33017を再現するために使用

脆弱性の仕組み

この脆弱性は、Langflowの公開ビルドエンドポイントがユーザー提供のフロー定義を受け入れるために存在します。エンドポイントは公開フロー用に設計されていますが、攻撃者がカスタムコンポーネントコードを含むノード定義を送信すると、システムはそのコードをフロービルドパスに渡し、最終的にサーバー上でのコード実行につながります。

このプロジェクトのPoCは、出力にプルーフオブジェクトを返すカスタムコンポーネントを使用して、攻撃者制御のコードが実際に実行されることを実証します。


PoCの設計

このプロジェクトのPoCは最小限の害となるように設計されており、APIを通じて明確に観察可能なプルーフに焦点を当てています。そのワークフローは以下の通りです:

  1. Langflowが準備完了になるのを待つ
  2. 自動ログインエンドポイントを呼び出してトークンを取得する
  3. PUBLICフローを作成する
  4. カスタムコンポーネントコードを公開ビルドエンドポイントに送信する
  5. job_idを受け取る
  6. ビルドイベントAPIをポーリングする
  7. イベントペイロードからプルーフオブジェクトを解析する

このPoCは以下をカバーしません:

  • シェルの起動
  • リバース接続の確立
  • 永続化の確立
  • シークレットのダンプ
  • ウェブシェルの使用

ラボの実行

1) 脆弱なサービスを起動する

docker compose up -d --build

2) バージョンエンドポイントを確認する

curl -i http://localhost:7861/api/v1/version

3) PoCを実行する

python3 poc/poc.py --base-url http://localhost:7861 --artifact-dir ./artifacts/vuln

期待される出力

PoCが成功すると、出力は次のようになります:

[+] http://localhost:7861 ready (version=1.8.1)

=== TARGET: vuln ===
Base URL : http://localhost:7861
Version  : 1.8.1
Flow ID  : <uuid>
HTTP     : 200
Job ID   : <uuid>
Canary   : lf33017-xxxxxxxx
Events   : artifacts/vuln/events-<job_id>.ndjson
Polls    : 2

[+] Proof observed through the Langflow API events endpoint:
{
  "canary": "lf33017-xxxxxxxx",
  "id_output": "uid=1000(user) gid=0(root) groups=0(root)",
  "whoami": "user",
  "hostname": "<container-hostname>",
  "cwd": "/app",
  "python_version": "3.12.x"
}

[+] Vulnerable behavior observed

artifacts/vuln/events-<job_id>.ndjsonファイルには、追加のデバッグ用に生のイベントデータが保存されます。


現在のPoCが証明すること

このPoCは以下を実証します:

  • 攻撃者が公開ビルドフローを呼び出せる
  • 攻撃者制御のコードがLangflowサーバー上で実行される
  • 実行コンテキストがAPIを通じて返される
  • 実際の影響は未認証のコード実行である

このPoCは永続化や高度なポストエクスプロイテーションを実証することを目的としておらず、脆弱性を検証するために必要な最小限の影響に留めています。


影響

このラボに基づいて、実証された影響は以下の通りです:

  • 未認証の攻撃者がLangflowサーバー上でPythonコードを実行できる
  • 攻撃者がプロセスのランタイムコンテキストにアクセスできる
  • 攻撃者がワンショットのシステムコマンドを実行できる
  • 攻撃者が作業ディレクトリとランタイムメタデータにアクセスできる

パッチ適用済みサービスがない理由

このリポジトリには、設計上、パッチ適用済みサービスは含まれていません。

その範囲は、実際の上流アーティファクト上で脆弱な動作を再現することに限定されています。パッチ適用済みサイドは、ベンダーまたは上流プロジェクトから明確に検証可能な公式の修正済みアーティファクトが利用可能な場合にのみ追加されます。

そのため、このリポジトリは意図的に以下を避けています:

  • 修正済みリリースをシミュレートするためのローカルイメージの構築
  • パッチ動作を模倣するためのイメージソースの変更
  • 本物の上流のパッチ適用済みアーティファクトなしに脆弱性対パッチ適用済みの比較の外観を作り出すヘルパースクリプトの追加

これにより、ラボの範囲が狭く保たれ、技術的に誠実なものとなっています。人工的な並列セットアップを提示する代わりに、このリポジトリは3つのことに焦点を当てています:

  • 再現可能な脆弱な動作
  • 透過的な概念実証
  • 実際の上流アーティファクトと整合性のあるドキュメント

実際には、これによりこのリポジトリは以下に最適です:

  • 脆弱性の再現
  • 技術分析とレポート作成のサポート
  • 再現性と信頼性が合成されたパッチ適用済み環境よりも重要視されるポートフォリオでの使用

クリーンアップ

docker compose down -v

安全上の注意

このラボはlocalhostでのテストのみを目的として設計されています。

使用要件:

  • 自分の環境でのみ使用すること
  • PoCをウェブシェルや永続化メカニズムに変更しないこと
  • リポジトリに実際のトークンや実際のシークレットを含めないこと
  • 将来パッチ適用済みサイドが追加される場合、公式の修正済みアーティファクトのみを使用すること
ツールをダウンロード