OWN NEWS GATHER
← 戻る
The Hacker News

ワークフロー自動化ツール「n8n」に高深刻度の脆弱性、サンドボックスを回避してサーバー上でコマンド実行が可能に

要点

  • ワークフロー自動化ツール「n8n」に、隔離された安全な実行環境(サンドボックス)を回避される高深刻度の脆弱性が発見された。

  • 悪用された場合、認証されたワークフロー編集者がサーバー上で任意のオペレーティングシステム(OS)コマンドを実行できる状態になる。

  • 2026年2月に修正された別の脆弱性(CVE-2026-27577)のパッチを調査していたセキュリティ企業によって、今回のバイパス手法が特定された。

  • 開発元はすでに修正バージョンを公開しており、一時的なアクセス制限ではなく迅速なアップデートの適用を推奨している。

  • ワークフロー自動化プラットフォーム「n8n」において、認証されたワークフロー編集者がサーバー上で任意のオペレーティングシステム(OS)コマンドを実行できる高深刻度の脆弱性が存在することが明らかになりました。この問題はセキュリティ企業のSecurity Joesによって発見され、開発元は2026年7月22日に修正プログラムを公開しています。

脆弱性の概要と想定されるリスク

今回判明した脆弱性は、式サンドボックス(プログラムが安全に動作するためにアクセス範囲を制限された隔離環境)の制限をすり抜ける「サンドボックス回避」と呼ばれるものです。GitHub上で公開されたセキュリティアドバイザリでは「GHSA-gv7g-jm28-cr3m」として追跡されており、脆弱性の深刻度を示す評価基準であるCVSS 4.0スコアでは「8.7(高深刻度/High)」と評価されています。なお、2026年7月27日の時点では、この脆弱性に対する個別識別番号(CVE番号)は割り当てられていません。

悪用には、ワークフローの新規作成や編集を行うことができる有効なアカウントが必要となりますが、悪用にあたって他のユーザーによる操作や介入は不要とされています。攻撃に成功した場合、n8nがサーバー上で動作しているプロセスと同じ権限で、任意のOSコマンドを実行されてしまう恐れがあります。

Security Joesが公開した報告書によると、この脆弱性が悪用された場合、n8nが各種連携サービスの認証情報を保護するために使用している暗号化キー「N8N_ENCRYPTION_KEY」が窃取される危険性があります。このキーが漏洩すると、n8nに登録されているデータベースやクラウドサービス、内部ネットワーク上のシステムなど、接続先である様々な外部サービスの連携用パスワードが復号され、さらなる侵入経路として利用される可能性があります。

アロー関数とプロパティチェックの隙を突いた仕組み

この問題の根本的な原因は、n8nがワークフロー内で記述された簡易的なプログラム(式)を処理する仕組みにありました。n8nでは、ユーザーがワークフローの処理を記述する際に ={{ $json.email }} といった式(Expression)を使用できます。この式が実行される際、内部では「ASTリライター」と呼ばれる、プログラムコードの構造を木構造のデータ形式(AST:抽象構文木)に変換して書き換える機能が働いています。これにより、危険な処理がNode.jsの実際の実行環境ではなく、安全に制御されたデータ環境へとリダイレクトされるようになっていました。

しかし、特定のバージョン(バージョン2.31.4など)では、JavaScriptの記述方式の一つであるアロー関数(矢印記号を用いた簡潔な関数定義方法)の処理に不備が存在していました。アロー関数の解析処理において、記述内容をそのまま通過させてしまう例外的なルートが残されていたため、攻撃者が () => process といった簡潔な記述を行うと、サンドボックスによる制限を受けずに、Node.jsの本来のグローバルオブジェクトである「process」に直接アクセスできてしまう状態になっていました。

さらに研究者らは、n8nがプロパティ(オブジェクトが持つ情報)の静的な名称を検査するセキュリティチェックを回避するため、JavaScriptの組み込み機能である Reflect.get() メソッドを利用しました。これにより、静的なチェックをすり抜けてNode.jsのシステム関数「process.getBuiltinModule」を呼び出し、OSコマンドを実行するためのモジュールである「child_process」を読み込ませることに成功したといいます。

発見の経緯と推奨される対策

この脆弱性は、Security Joesが2026年2月に修正された別の深刻な脆弱性「CVE-2026-27577」(深刻度9.4)の修正パッチを詳細に検証する中で発見されました。CVE-2026-27577も同様に「process」オブジェクトがサンドボックスを回避する問題でしたが、その対策をかいくぐる別のルートが存在していたことになります。

影響を受けるバージョンは、2.31.5未満のバージョン、および2.32.0以上2.32.1未満のバージョンです。開発元はこれらの問題を解決したバージョン「2.31.5」および「2.32.1」をすでにリリースしています。なお、過去のメジャーバージョンである1.x系に対する修正プログラムは現在のところ案内されておらず、クラウド版である「n8n Cloud」が影響を受けるかどうかも明記されていません。

時系列としては、Security Joesが2026年7月14日にこのバイパス手法を特定し、翌15日にn8nの脆弱性開示プログラムを通じて報告しました。その後、n8nは7月22日に修正パッチを公開しました。今回の報告時点では実環境における悪用(野生での攻撃)は観測されていないとのことです。

開発元は管理者に対し、インスタンスへのアクセス制限や信頼できるユーザーのみに編集権限を付与する暫定的な対策に頼るのではない、最新バージョンへの早急なアップデートの適用を強く推奨しています。また、防衛策として、最近作成または修正されたワークフロー内に不審なアロー関数や難読化されたJavaScriptコードが含まれていないかを確認すること、さらにn8nやNode.jsのプロセスから派生してシェルプログラム(PowerShell、bashなど)や、「curl」、「wget」といった外部通信ツールが予期せず実行されていないかを監視することを勧めています。不審なアクティビティが確認された場合は、各種認証情報をただちにローテーションすることも求められます。

元URL