
概念実証:CVE-2026-21858は、n8nにおける脆弱性であり、未認証のリモート攻撃者が機密ファイルにアクセスできる可能性があります。
CVE-2026-21858 を検出するためのセキュリティ研究ツール。これは n8n ワークフロー自動化プラットフォームにおける重大なリモートコード実行の脆弱性です。
| フィールド | 値 |
|---|---|
| CVE 識別子 | CVE-2026-21858 |
| CVSS v3.1 スコア | 10.0 (重大) |
| CVSS ベクトル | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| CWE 分類 | CWE-94: コード生成の不適切な制御 |
| ベンダー | n8n GmbH |
| 製品 | n8n ワークフロー自動化 |
| 開示日 | 2026年1月 |
| パッチ提供 | あり (v1.121.0+) |
n8n バージョン 1.65.0 から 1.120.x には、認証されていないリモート攻撃者が基盤となるサーバー上で任意のコードを実行できる重大な脆弱性が存在します。この脆弱性は、特別に細工されたフォームベースのワークフローを通じて悪用され、不正なファイルシステムアクセスとコマンド実行を可能にします。
| バージョン範囲 | ステータス |
|---|---|
| < 1.65.0 | 影響なし |
| 1.65.0 - 1.120.x | 脆弱 |
| >= 1.121.0 | 修正済み |
この脆弱性は、フォームベースのワークフロー実行エンジンにおける不十分な入力検証に起因します。フォームトリガーを介してユーザー提供のデータを処理する際、n8n は内部実行コンテキストに渡す前に入力パラメータを適切にサニタイズしません。
| パッケージ | 最小バージョン | 目的 |
|---|---|---|
| requests | 2.31.0 | HTTP リクエスト処理 |
| urllib3 | 2.0.0 | URL と接続管理 |
| packaging | 23.0 | バージョン比較ロジック |
uv は高速な Python パッケージインストーラおよびリゾルバです。
# Clone the repository
git clone https://github.com/sh4den/CVE-2026-21858.git
cd CVE-2026-21858
# Install dependencies and create virtual environment
uv sync
# Run the tool
uv run python main.py -u https://target.example.com
# Clone the repository
git clone https://github.com/sh4den/CVE-2026-21858.git
cd CVE-2026-21858
# Create virtual environment (recommended)
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# or
.\venv\Scripts\activate # Windows
# Install dependencies
pip install requests>=2.31.0 urllib3>=2.0.0 packaging>=23.0
# Run the tool
python main.py -u https://target.example.com
# Ensure Python 3.12+ is installed
python3 --version
# Install required packages
pip install requests urllib3 packaging
# Download and run
curl -O https://raw.githubusercontent.com/sh4den/CVE-2026-21858/main/main.py
python3 main.py -u https://target.example.com
Usage:
python main.py -u <target_url> Scan single target
python main.py -l <targets_file> Scan multiple targets from file
Arguments:
-u Single target URL
-l Path to file containing target URLs (one per line)
単一の n8n インスタンスが脆弱性を有しているかテストします:
python main.py -u https://n8n.example.com
python main.py -u http://192.168.1.100:5678
ファイルから複数のターゲットをスキャンします:
python main.py -l targets.txt
Target File Format (targets.txt):
https://n8n.company-a.com
https://n8n.company-b.com:5678
http://10.0.0.50:5678
n8n.company-c.com
192.168.1.100:5678
Notes:
https:// になりますこのツールは以下の手順でパッシブなバージョン検出を実行します:
/signin エンドポイントへの HTTP GET リクエストn8n:config:sentry メタタグを見つける[email protected] に一致するバージョン文字列を抽出GET /signin HTTP/1.1
Host: target.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9
Accept-Language: en-US,en;q=0.5
Connection: close
n8n のアップグレード: 直ちにバージョン 1.121.0 以降に更新
# Using npm
npm update -g n8n
# Using Docker
docker pull n8nio/n8n:latest
ネットワーク隔離: n8n インスタンスへのアクセスを制限
ワークフロー監査: 既存のすべてのワークフローをレビュー
# Verify n8n version after update
n8n --version
# Or check via this tool
python main.py -u https://your-n8n-instance.com
# Expected: [SAFE] ... Version: 1.121.0+ (not vulnerable)
n8n およびウェブサーバーのログで以下のパターンを確認してください:
重要: 使用前にお読みください
このツールは厳密に以下の目的でのみ提供されています:
禁止される使用法:
責任:
著者および貢献者は、本ソフトウェアの誤用に関して一切の責任を負いません。ユーザーは、すべての該当法令を遵守し、セキュリティテストを実施する前に適切な許可を得る責任を単独で負います。
法的通知:
コンピュータシステムへの不正アクセスは、米国のコンピュータ詐欺および悪用取締法 (CFAA)、英国のコンピュータ不正使用法、および世界中の類似の法律の違反を含むがこれに限定されない、ほとんどの管轄区域で刑事犯罪です。
| バージョン | 日付 | 変更内容 |
|---|---|---|
| 1.0.0 | 2026-01-20 | 初回リリース |
このプロジェクトは、許可されたセキュリティ研究目的のみのために現状のまま提供されます。明示的または黙示的な保証は一切提供されません。自己責任で、かつ適用される法律に従って使用してください。
| インジケータ | 色 | 説明 |
|---|
[VULNERABLE] | 緑 | 対象が脆弱な n8n バージョン (1.65.0 - 1.120.x) を実行中 |
[SAFE] | 青 | 対象が修正済みバージョン (>= 1.121.0 または < 1.65.0) を実行中 |
[WARNING] | 黄 | n8n インスタンスを検出したがバージョン抽出に失敗 |
[ERROR] | 赤 | 接続失敗、タイムアウト、または n8n 以外のターゲット |
| アクション | 優先度 | 説明 |
|---|
| パッチ管理 | 重大 | n8n の自動アップデート手順を確立 |
| アクセス制御 | 高 | すべての n8n エンドポイントに認証を実装 |
| ネットワークセグメンテーション | 高 | n8n を公開ネットワークから隔離 |
| 監視 | 中 | n8n アクティビティのログ記録とアラートを導入 |
| 最小権限 | 中 | n8n を必要最小限の権限で実行 |
| バックアップ | 中 | ワークフロー設定の定期的なバックアップを維持 |