n8nにおける連鎖エクスプロイト:RidgeBotが現実世界のワークフロー乗っ取りを検知する方法

Chained Exploitation in n8n: How RidgeBot Detects Real-World Workflow Takeover
“Chained Exploitation in n8n: How RidgeBot Detects Real-World Workflow Takeover” Jan 26, 2026 by Gloria Duo より

概要

人気のワークフロー自動化プラットフォームであるn8nのローカルインスタンスにおいて、最近公開された脆弱性は、連鎖的に悪用されることで、攻撃者が自動化ワークフローを完全に制御し、基盤となるシステム上で任意のコマンドを実行できる可能性があります。

これらの問題はn8n Cloudには影響しませんが、特定の条件下では、セルフホスト型の導入環境に深刻なリスクをもたらします。

本記事では、このエクスプロイト(脆弱性を実際に悪用する手法)チェーンの仕組みを概説するとともに、RidgeBot®がその制御下で実行するエクスプロイトを通じて、脆弱性を安全に検出・検証し、推測を排除して誤検知を削減する方法について説明します。

脆弱性チェーンの理解

この攻撃は、n8nに存在する単一の欠陥によるものではなく、2つの異なる脆弱性を組み合わせた連鎖的なエクスプロイトです。

個々の脆弱性はそれぞれ限定的なリスクしか及ぼしませんが、これらが組み合わさることで、システム全体の侵害が可能になります。

脆弱性A:コンテンツタイプの混同による任意のファイル読み取り(CVE-2026-21858)

最初の脆弱性は、アップロードされたファイルのコンテンツタイプが適切に処理されないことに起因します。

これにより、攻撃者はディスク上の任意のファイルを読み取ることが可能になります。

ローカルに導入されたn8nインスタンスでは、暗号化された認証情報を含む機密性の高いアプリケーションデータが、ディスク上のユーザーのホームディレクトリに保存されています。

特に重要なのは、これらの認証情報を保護するために使用される暗号化キーが、設定ファイル内にローカル保存されている点です。

このファイル読み取り機能を悪用することで、攻撃者は暗号化された認証情報データと、それを保護するために使用されたキーの両方を取得でき、結果として機密性の障壁を事実上排除することが可能になります。

脆弱性B:リモートコード実行につながる演算式インジェクション(CVE-2025-68613)

2つ目の脆弱性は、攻撃者が古いバージョンのn8nにおける式評価ロジックを悪用できる点にあります。

ユーザー定義の式と、基盤となるNode.jsランタイムとの分離が不十分であるため、巧妙に作成された式によって、意図されたサンドボックスを回避し、JavaScriptの内部機構へアクセスすることが可能になります。

この脆弱性が管理者権限のコンテキストで実行された場合、ホストシステム上で任意のコマンド実行が可能となり、エクスプロイトチェーン全体の影響を決定づける要因となります。

エクスプロイトチェーンの仕組み

  1. 攻撃者は、任意のファイル読み取り脆弱性を悪用し、ディスク上の機密ファイルにアクセスします。
  2. 取得した暗号化キーを使用して、保存されている認証情報を復号します。
  3. 取得した秘密情報を用いて、有効な管理者セッショントークンを偽造します。
  4. 管理者アクセスが確立された後、攻撃者はワークフローを作成または変更します。
  5. 悪意のある演算式がワークフローロジックに組み込まれ、リモートコード実行が引き起こされます。

これらの各ステップは前のステップに依存しており、いずれかの一つだけでは攻撃は成立しません。

影響を受ける環境と実際の状況

このエクスプロイトチェーンは、バージョン1.121.0より前のn8nを実行している、ローカルに展開されたインスタンスに影響します。

また、この攻撃が成立するためには、いくつかの特定の非デフォルト構成が必要です。

具体的には、公開フォームエンドポイントにおいて認証が無効化され、ファイルアップロードフィールドを持つ、公開アクセス可能なフォームを含むアクティブなワークフローが存在する必要があります。

さらに同一のワークフロー内に、アップロードされたファイルの内容をHTTPレスポンスとして返却する「Respond to Webhook」ノードが含まれている必要があります。

この構成はデフォルトでは有効になっていませんが、自動化プラットフォームの利用においては、特に社内ツール、単発的なワークフロー、外部データ取り込みといったシナリオでは、容易な統合や迅速なセットアップが優先されがちであるという一般的な運用パターンを反映しています。

従来のスキャナーとRidgeBotによる検出

従来型のセキュリティスキャナーは、さまざまな理由から、このようなエクスプロイトチェーンへの対応に苦戦します。

バージョンベースのスキャナーは、構成の違いを考慮せずに脆弱なn8nバージョンを検出対象としてフラグ付けしてしまい、必要な条件が満たされていない場合でも誤検知を発生させる可能性があります。

一方で、シグネチャベースのスキャナーは、レスポンスパターンに基づいてファイル読み取りの脆弱性を特定できる場合はありますが、攻撃が実際に完全な侵害へと発展するかどうかを検証することはできません。

いずれのアプローチも、エクスプロイトチェーン全体が実際に到達可能であるかを判断することは困難です。

このような状況では、部分的な検出にとどまり、不確実性が残ります。

これに対し、RidgeBotのエクスプロイトベースのアプローチでは、脆弱性が存在するかどうかだけでなく、実際に展開されたコンテキストにおいてエクスプロイト可能であるかどうかを確認します。

これは、セキュリティチームにとって、誤検知の削減、明確で実用的な検出結果、そして実際の被害を発生させることなく、現実世界の攻撃者の行動を反映した証拠を得られることを意味します。

RidgeBotがエクスプロイトを安全に検出する方法

RidgeBotは、エンドツーエンドでエクスプロイト可能性を検証するという、従来とは異なるアプローチを採用しています。

  1. RidgeBotは、期待されるレスポンス挙動の存在を検証することで、任意のファイル読み取り脆弱性を特定します。

n8nにおける任意のファイル読み取りに対するRidgeBotの検出結果

  1. 取得されたデータは、管理者権限へのアクセスが導出可能かどうかを判断するために分析されます。

n8nの任意のファイル読み取りに対するRidgeBotの検証結果(HTTPレスポンスボディ)

  1. RidgeBotは、権限昇格が可能であることを確認するため、管理者セッションを偽造します。
  2. リモートコード実行が可能であることを検証するため、制御された非破壊的なコマンドが実行されます。

n8nにおけるリモートコマンド実行に対するRidgeBotの検出結果

n8nにおけるリモートコマンド実行に対するRidgeBotの検証結果

検証の過程において悪意のあるアクションが実行されることはなく、検証に必要な範囲を超えてシステムの状態が変更されることもありません。

また、検出中に観測される機密情報は、スキャン環境内に限定されます。

まとめ

攻撃者は、単一の脆弱性のみに依存することはほとんどなく、小さな弱点を連鎖させることで完全な侵害へと到達します。

RidgeBotは、こうした現実世界の攻撃パスを想定し、各ステップを安全に検証することで、実効性の高い検知を実現するよう設計されています。

これにより、セキュリティチームは高い信頼性をもって、実際のリスクに基づいた判断を行うことが可能になります。


貴社のセキュリティ強化を支援する、RidgeBot®のご紹介もご覧ください。

RidgeBot®について、もっと詳しく

シェアする

  • このエントリーをはてなブックマークに追加

フォローする