はじめに
オープンソースの自動化・ワークフロープラットフォームであるn8nにおいて、認証済みユーザーが脆弱なシステム上で任意のコマンドを実行できる可能性がある、極めて重大な脆弱性が発見されました。この脆弱性は、システムのセキュリティに深刻な影響を及ぼす可能性があります。
脆弱性の概要
この脆弱性は「CVE-2025-68668」として追跡されており、その深刻度はCVSS v3.1スコアで9.1/10と評価されています。これは非常に高いリスクを示すものです。脆弱性の種類は「サンドボックスバイパス / 任意のコマンド実行」であり、n8nのPython Code Node(Pyodide)に存在します。
詳細と影響
セキュリティ研究者によって報告されたこの脆弱性は、n8nのPython Code Nodeが依存するPyodideのサンドボックス保護メカニズムをバイパスできる点にあります。ワークフローを作成または変更する権限を持つ認証済みユーザーは、このバイパスを利用して、ホストマシン上で実行されているn8nプロセスと同じ権限で任意のシステムコマンドを実行することが可能になります。
この攻撃は、低い権限と低い攻撃の複雑さで実行可能であり、悪意のある内部関係者や基本的なワークフローアクセス権を持つユーザーでも容易に攻撃を開始できる可能性があります。この脆弱性が悪用された場合、機密性、完全性、可用性のすべてが影響を受け、データ窃盗、システム侵害、またはサービス停止につながる恐れがあります。
対象バージョンと修正
この脆弱性の影響を受けるのは、n8nのバージョン1.0.0から1.999.999までの全バージョンです。n8nは、この脆弱性への完全な修正を含むバージョン2.0.0をリリースしました。バージョン2.0.0では、脆弱性のあるPyodideベースの実装が、より安全なタスクランナーベースのネイティブPython環境に置き換えられています。
推奨される対策
セキュリティチームは、以下の複数のオプションを検討し、直ちにシステムを保護する必要があります。
- バージョン2.0.0へのアップグレード:最も推奨される対策は、n8nを直ちにバージョン2.0.0にアップグレードすることです。
- 一時的な回避策(バージョン1.104.0以降の場合):
- Code Nodeの無効化:環境変数
NODES_EXCLUDEを設定し、n8n-nodes-base.codeを除外することでCode Node全体を無効にします。 - Pythonサポートの無効化:環境変数
N8N_PYTHON_ENABLED=falseを設定することでPythonサポートをオフにします(バージョン1.104.0以降で利用可能)。 - タスクランナーベースのPythonサンドボックスの有効化:よりきめ細かいアプローチを好む場合、
N8N_RUNNERS_ENABLEDおよびN8N_NATIVE_PYTHON_RUNNER環境変数を介してタスクランナーベースのPythonサンドボックスを有効にすることができます。これにより、機能を完全に削除することなく、より良い分離を提供します。
- Code Nodeの無効化:環境変数
直ちにアップグレードが困難な場合は、運用要件に基づいて上記のいずれかの回避策を適用することが強く推奨されます。
