人気のワークフロー自動化プラットフォームであるn8nで、認証済みユーザーがホストシステム上で任意のコマンドを実行できてしまう重大なセキュリティ脆弱性が公開されました。
GHSA-62r4-hw23-cc8vとして追跡されているこの欠陥は、Python Code Nodeコンポーネントに影響し、業務プロセス自動化に同プラットフォームを利用する組織にとって大きなリスクとなります。
この脆弱性は、n8nのPyodideベースのPython Code Node実装におけるサンドボックス回避の弱点に起因します。
n8nのセキュリティ研究者Cornelius Suermann氏は2週間前にアドバイザリを公開し、ワークフローの作成または変更権限を持つ認証済みユーザーがこの欠陥を悪用して、意図されたセキュリティ境界を突破できると警告しました。
悪用されると、攻撃者はn8nプロセスと同じシステム権限で任意のコマンドを実行でき、サーバーインフラ全体が侵害される可能性があります。
この種のサンドボックス脱出脆弱性は、複数のユーザーが自動化スクリプトの作成・変更に正当なアクセス権を持つ場合があるワークフロー自動化プラットフォームでは特に危険です。
この欠陥により、悪意ある内部関係者や侵害されたアカウントが、制限されたPython実行環境を超えて基盤となるオペレーティングシステムと直接やり取りできてしまいます。
1.0.0から2.0.0未満までのすべてのn8nバージョンが、この任意コマンド実行の問題の影響を受けます。これらのバージョンを運用している組織は、潜在的な悪用を防ぐため、直ちにパッチ適用を最優先すべきです。
この脆弱性は、分離機能を強化した、より安全なタスクランナーベースのネイティブPython実装を導入するn8nバージョン2.0.0で修正されました。
新しいセキュリティモデルは、バージョン1.111.0でオプション機能として初めて導入され、N8N_RUNNERS_ENABLEDおよびN8N_NATIVE_PYTHON_RUNNER環境変数により、早期導入者がより強固なサンドボックス化を有効にできるようになりました。
この実装は、2.0.0リリース以降、デフォルトのセキュリティ機構となりました。
バージョン2.0.0へ直ちにアップグレードできない組織向けに、いくつかの一時的な緩和策が用意されています。
管理者は、設定ファイルで環境変数NODES_EXCLUDEを“[“n8n-nodes-base.code”]”に設定することで、脆弱なCode Nodeを完全に無効化できます。
または、バージョン1.104.0で導入された機能であるN8N_PYTHON_ENABLED=falseを設定することで、Code Node内のPythonサポートのみを無効化することも可能です。
最も安全な一時的対策は、N8N_RUNNERS_ENABLEDおよびN8N_NATIVE_PYTHON_RUNNER環境変数を設定し、脆弱なバージョン1.111.0以降でタスクランナーベースのPythonサンドボックスを手動で有効化することです。
ただし、この重大なセキュリティ脆弱性に完全に対処するための推奨される恒久的な解決策は、引き続きバージョン2.0.0へのアップグレードです。
翻訳元: https://cyberpress.org/n8n-automation-platform-hit-by-arbitrary-command-execution-flaw/