CVSS 10.0満点の脆弱性「Ni8mare」(CVE-2026-21858)

2026年に入って「Ni8mare(ナイトメア)」と呼ばれる深刻な脆弱性が発見されました。

1. どんなインシデントか

n8nとは

今回問題になったのは「n8n(エヌエイトエヌ)」というワークフロー自動化プラットフォームです。

身近な例で言うと…

  • 「新しいメールが届いたら、自動的にSlackに通知する」
  • 「Googleスプレッドシートに新しい行が追加されたら、データベースに保存する」

こんな作業を自動化できるツールです。

何が問題だったのか

このn8nに、CVSS 10.0(満点!) という最高レベルの脆弱性が見つかりました。名前は「Ni8mare(CVE-2026-21858)」。

脆弱性の正体:

  • Content-Type混同の脆弱性
  • 認証なしで攻撃可能
  • 世界中で26,512台のサーバーが影響を受ける可能性

技術的な原因

身近な例で考えてみましょう。

例:郵便配達のミス

想像してください。あなたの家に郵便が届きます。

正常な場合:

  • 郵便配達員:「これは手紙です」→ ポストに入れる
  • 郵便配達員:「これは荷物です」→ 玄関で手渡し

今回の脆弱性(Ni8mare)の場合:

  • 攻撃者: 封筒に「これは手紙です」と書く
  • でも中身は実は「家の鍵を開けるための道具(荷物)」
  • 郵便配達員は「手紙だ」と信じて、手渡しせずにポストに入れてしまう

技術的には:

攻撃者が送るリクエスト:
Content-Type: application/json  ← 「これはJSONデータです」と嘘をつく
実際の中身: ファイルパス情報(例:/home/node/.n8n/database.sqlite)

n8nのシステム:
「JSONデータだな」と信じて処理
→ 本来アクセスできないファイルを読み取ってしまう

EC-CUBEで例えるなら

EC-CUBEなどのECサイトで同じような脆弱性があったら…

  • 商品画像をアップロードするフリをして、実は顧客データベースにアクセス
  • 「画像ファイルです」と偽って、実は会員情報のファイルを取得

2.どんなシステムが影響を受けるのか

直接的な被害

影響を受けるバージョン:

n8n バージョン1.65.0以前のすべて

特に危険な状況:

  • インターネットに公開されているn8nサーバー
  • 認証なしでアクセスできるWebhook(外部からデータを受け取る窓口)
  • フォーム機能を使っている場合

間接的な被害:ドミノ倒しのように広がる危険性

n8nの怖いところは、「ハブ(中継地点)」として機能している点です。

例:あなたの会社でn8nを使っている場合

n8nが侵害される
    ↓
保存されている認証情報が盗まれる
    ↓
├─ Slackのトークン → 社内チャットが覗かれる
├─ AWSのアクセスキー → クラウドサーバーが乗っ取られる
├─ データベースのパスワード → 顧客情報が流出
└─ メールサービスのAPI鍵 → なりすましメールが送られる

つまり、n8n一つが侵害されると、繋がっているすべてのサービスが危険にさらされます。

最近のn8nの他の脆弱性

実は、Ni8mare以外にも最近こんな脆弱性が見つかっています:

  • CVE-2025-68613(CVSS 9.9): ログインしたユーザーがコードを実行できる
  • CVE-2025-68668(CVSS 9.9): セキュリティの壁(サンドボックス)を突破できる
  • CVE-2026-21877(CVSS 10.0): 危険なファイルをアップロードできる

「便利なツールほど、セキュリティリスクも大きい」ということを覚えておきましょう。

3.対策

① パッチを適用する

最新バージョンにアップグレード:

  • バージョン1.121.0以降
  • 推奨:1.123.10、2.1.5、2.2.4、2.3.0

② 暫定的な回避策

すぐにアップデートできない場合:

1.インターネットに公開しない

  • 社内ネットワークからのみアクセス可能にする
  • VPN経由でのみアクセスを許可

2.認証を必須にする

  • すべてのフォームにパスワード認証を設定
  • Webhookにも認証トークンを設定

3.不要な機能を無効化

  • 使っていないWebhookは削除
  • 公開フォームを一時的に停止

4.この脆弱性で具体的に何ができてしまうのか

攻撃者の視点で理解することで、防御の重要性が分かります。

攻撃の4ステップ(段階的エスカレーション)

ステップ1:任意ファイル読み取り

攻撃者がやること:

POST /webhook/form HTTP/1.1
Content-Type: application/json

{
  "files": {
    "file": {
      "path": "/home/node/.n8n/database.sqlite"
    }
  }
}

何が起こる?

  • システムは「JSONデータだ」と勘違い
  • 実際にはdatabase.sqlite(データベースファイル)を読み取ってしまう

身近な例:

図書館で「この本を借ります」と言いながら、実は「金庫の鍵」を持ち出すようなもの。

ステップ2:機密情報の窃取

取得できる情報:

データベースファイルから:
- 管理者のユーザーID
- メールアドレス
- ハッシュ化されたパスワード

設定ファイルから:
- 暗号化の秘密鍵
- API接続情報

EC-CUBEで例えると:

  • 管理画面のログイン情報
  • 決済システムのAPI鍵
  • 顧客データベースの接続情報

これらが全部盗まれるイメージです。

ステップ3:認証バイパス(なりすまし)

攻撃者がやること:

  1. 盗んだ情報を使って偽のセッションクッキーを作成
  2. 管理者としてログイン
  3. すべての機能にアクセス可能に

分かりやすい例:

通常:
あなた → [ログイン画面] → パスワード入力 → 管理画面

攻撃者:
盗んだ情報 → [偽の身分証明書を作成] → 直接管理画面へ

ステップ4:リモートコード実行(RCE)

最終段階:完全な制御

攻撃者は管理者権限を使って:

// n8nで新しいワークフローを作成
{
  "nodes": [
    {
      "type": "n8n-nodes-base.executeCommand",
      "parameters": {
        "command": "cat /etc/passwd"  // システムのユーザー情報を表示
      }
    }
  ]
}

できてしまうこと:

  • サーバー上で任意のコマンド実行
  • マルウェアのインストール
  • バックドアの設置
  • 他のサーバーへの攻撃の踏み台

影響範囲の恐ろしさ

単一障害点(Single Point of Failure):

n8nが侵害される
    ↓
すべての統合サービスへのアクセス権を取得
    ↓
├─ Slack → 社内情報の盗聴
├─ GitHub → ソースコードの窃取
├─ AWS → サーバーの乗っ取り
├─ Salesforce → 顧客情報の流出
└─ Gmail → なりすましメール送信

便利な統合ツールは、侵害されると被害が連鎖します。
注意して利用するようにしましょう。