Control Web Panel の未認証 RCE チェーン(CVE-2026-73696)
Control Web Panel はバージョン 1.12 より前で、未認証ユーザーにユーザーパネルのコード実行を許します。3件の VulnCheck アドバイザリがこのチェーンを扱います。
TL;DR
- ユーザーパネルのバージョン 1.12 より前の Control Web Panel では、未認証の攻撃者がログインリダイレクトを通り抜けてユーザーパネル自身のモジュールを利用できます。さらに2つの欠陥がそのアクセスをファイル書き込みとOSコマンド実行に変えます。VulnCheck は3つのアドバイザリすべてを2026年11月2日に公開しました。
- リダイレクト後実行によるバイパスである CVE-2026-73696 は 9.3 Critical、CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N です。CVE-2026-73695 と CVE-2026-73697 はそれぞれ 8.7 High です。
- エクスプロイト、悪用、被害者の報告はなく、2026年11月2日時点で3つの CVE のいずれも CISA の KEV カタログに載っていません。発見者の Valentin Lobstein 氏は Chocapikk のハンドルでクレジットされています。
- 今すぐ CWP を最新リリースに更新してください。ユーザーパネルの修正は2026年9月8日のバージョン 1.12 で導入され、パネルは現在バージョン 1.30.1 です。今日更新できない場合は、ユーザーパネルのポートを信頼できるネットワークに制限してください。
影響を受けますか?
以下のすべてが成り立つ必要があります。
- 無料の Linux ホスティングパネルである Control Web Panel を実行していること。ベンダーは35,000以上のサーバーが CWP を実行していると述べています。
- ユーザーパネルが攻撃者から到達可能であること。ユーザーパネルは2030番の管理パネルとは別に、デフォルトで 2082 番の独自ポートで待ち受けます。
- CVE-2026-73696 についてはユーザーパネルのバージョンが 1.12 未満です。CVE-2026-73695 と CVE-2026-73697 については 1.16 未満です。
3つの欠陥は連鎖しますが、単独でも成立します。リダイレクトバイパス(CVE-2026-73696)が未認証の入口です。パストラバーサル(CVE-2026-73695)と phpini_editor の欠陥(CVE-2026-73697)はユーザーパネルのセッションを必要とし、そのセッションをバイパスが資格情報なしで提供します。ユーザーパネルの修正は開示の2か月前に提供されました。
| ユーザーパネルのブランチ | 影響を受けるバージョン | 修正バージョン |
|---|---|---|
| 1.12 より前のすべてのユーザーパネル | 1.12 未満の全リリース(リダイレクトバイパス、CVE-2026-73696) | 1.12、2026-09-08 リリース |
| ユーザーパネル 1.12 から 1.16 未満 | 1.12 から 1.15(パストラバーサルと phpini_editor、CVE-2026-73695 と CVE-2026-73697) | 1.16 |
バージョンはパネルのインターフェースで確認してください。変更履歴はユーザーパネルのバージョンを管理パネルとは別に記載しており、管理側の最近の更新はユーザーパネルが更新されたことを意味しません。
修正方法
CWP を現在のリリース 1.30.1 に更新してください。これには 1.12 と 1.16 のすべてのユーザーパネル修正が含まれます。
/usr/local/cwpsrvとパネルのデータベースを含め、サーバーをバックアップします。CWP にはアンインストーラーがなく、失敗した更新の巻き戻しは困難です。- 管理パネルで CWP の更新を最新バージョンまで実行します。複数バージョン遅れた環境では複数の更新ステップが必要な場合があります。
- 更新後、ユーザーパネルのバージョンをベンダーの変更履歴と照合して確認します。管理パネルのバージョンだけでは確認になりません。
更新を待つ間の緩和策として、ユーザーパネルのポートを制限できます。パネルはデフォルトで 2082 番で待ち受けています。ファイアウォールで信頼できるネットワークに限定してください。これは3つの欠陥のいずれも修正せず、パネルを必要とするホスティング顧客は引き続きアクセスが必要なため、あくまで露出の低減です。
根本原因は何ですか?
Control Web Panel はクローズドソースのため、この節は VulnCheck の3つのアドバイザリ記述に基づきます。それぞれがファイル、アクション、欠けていたチェックを明示しています。
CVE-2026-73696 は、ユーザーパネルの認証フロー CWPUserIndex におけるリダイレクト後実行の欠陥、CWE-698 です。ログインチェックは header('Location: ...') 呼び出しで未認証ユーザーをリダイレクトしますが、その後に exit() を呼び出しません。そのため PHP はページの実行を続けます。PHP では header() 呼び出しはリダイレクトを送信するだけで、スクリプトを停止しません。未認証のリクエストはリダイレクトを通り越して、セッションを要求するはずのユーザーパネル機能に到達します。
CVE-2026-73695 は services/users/index.php のパストラバーサル、CWE-98 です。モジュール名パラメータはサニタイズなしでインクルードパスに直接連結されます。そのためディレクトリトラバーサルのシーケンスが include に到達し、任意のローカル PHP ファイルを読み込みます。PHP コードを含むローカルファイルはすべて、ユーザーパネルのコンテキストで実行可能になります。
CVE-2026-73697 は、ユーザーパネルの phpini_editor モジュールにおける2つの欠陥、CWE-22 と CWE-78 です。acc=update アクションは、パスの制約なしに file_put_contents で攻撃者が制御する内容を任意のパスに書き込みます。acc=addlabelphpiniadv アクションはサニタイズされていない入力を shell_exec に渡します。この2つが合わさると、任意のファイル書き込みと、ユーザーパネルのコンテキストでの直接的なOSコマンド実行が可能になります。
どのように悪用されますか?
3つの CVE のいずれにも公開された概念実証は存在しないため、以下の手順は VulnCheck のアドバイザリが説明するチェーンの言い換えです。
- 攻撃者がユーザーパネルのページに未認証のリクエストを送信します。ログインリダイレクトで停止する代わりに PHP の実行が続行され、リクエストはユーザーパネルの機能に到達します(CVE-2026-73696)。
- ユーザーパネルの機能が到達可能になった状態で、攻撃者は
services/users/index.phpにおいて、ディレクトリトラバーサルのシーケンスを含む名前のモジュールを読み込み、任意のローカル PHP ファイルをインクルードします(CVE-2026-73695)。 - あるいはその後、攻撃者は
phpini_editorモジュールを利用します。acc=updateアクションは選択したファイルを選択したパスに書き込み、acc=addlabelphpiniadvはサニタイズされていない入力をshell_execに渡し、ユーザーパネルのコンテキストでOSコマンドを実行します(CVE-2026-73697)。
VulnCheck はトラバーサルの影響を任意の PHP コード実行、phpini_editor の欠陥の影響をユーザーパネルのコンテキストでのコード実行と説明しています。コードが実行されるアカウントはユーザーパネルのプロセスであり、root ではありません。
攻撃はどのように流れますか?
一文でいうと、未認証のリクエストがログインリダイレクトを飛び越え、トラバーサルのシーケンスを含むモジュール名がインクルードパスに到達し、phpini_editor がファイルを書き込むかシェルコマンドを実行します。
未認証リクエスト"] --> B["ログインリダイレクト送信、
その後に exit() なし"] B --> C["PHP がページの
実行を続ける"] C --> D["トラバーサルを含むモジュール名が
インクルードパスに到達"] D --> E["phpini_editor がファイルを書き込み
shell_exec を実行"] E --> F["ユーザーパネルのコンテキストで
コード実行"]
攻撃者は何をできますか?
文書化された影響は、ユーザーパネルのコンテキストでの任意の PHP コード実行とOSコマンド実行であり、条件は以下の通りです。
- ユーザーパネルのポートがネットワーク経由で攻撃者から到達可能であること。3つの CVSS ベクトルはすべてネットワーク攻撃ベクトルを記録しています。
- リダイレクトバイパスには特権もユーザー操作も不要です。残り2つの欠陥はベクトルに低特権を挙げており、その要件を資格情報なしで満たすのがこのバイパスです。
- トラバーサルはローカルファイルのみを読み込むため、攻撃者はサーバー上にインクルード対象の PHP ファイル、または事前にファイルを置ける書き込み可能なアップロード場所が必要です。
VulnCheck のアドバイザリは、root でのコード実行、管理パネルへのアクセス、サーバー間影響を主張していません。ユーザーパネルはホスティング顧客の機能を実行するため、実行されたコードはそのプロセスの範囲を継承します。
なぜ修正は機能しますか?
ベンダーはクローズドソースのビルドを配布しているため、引用できる修正の差分は公開されていません。変更履歴のユーザーパネル項目が、3つのアドバイザリに対応する修正を記録しています。バージョン 1.12 には「Improved security for login and session」と「Improved security on file」の項目があり、その後の項目も強化を続けています。
バージョン 1.12 は CVE-2026-73696 のリダイレクトバイパスを閉じ、バージョン 1.16 は CVE-2026-73695 と CVE-2026-73697 の修正を含みます。1.16 以降のすべてのリリースに3つの修正が含まれ、現在のリリース 1.30.1 も同様です。この3つ以外のすべてのインクルードパスとモジュールアクションに同じ強化が施されたかは公開されていないため、更新後もユーザーパネルは開かれたインターネットに置かないでください。
侵害されたか確認するには?
これらの欠陥の侵害指標は公開されていません。パネルに焦点を当てた確認を使用してください。
- ユーザーパネルのアクセスログを確認し、そのセッションの事前ログインなしに到着した
services/users/index.phpやphpini_editorモジュールパスへのリクエストを探します。 - パネルのファイルシステムを調べ、ユーザーパネルが提供するディレクトリで最近変更された時刻を持つ PHP ファイル、特に名前にトラバーサルらしいシーケンスを含むファイルを探します。
- phpini_editor の保存場所に作成していない設定ファイルがないか確認し、シェルコマンドの履歴と cron でパネルのパスを参照するエントリを確認します。
失敗した試行は痕跡を残さない場合があります。リダイレクトされたリクエストがそれ以上進まなければ、何も書き込まないからです。ユーザーパネルがインターネットに露出していた場合は、ログの内容にかかわらず完全なレビューが必要です。
年表
- 2026-09-08:CWP ユーザーパネルのバージョン 1.12 がリリースされ、リダイレクトバイパスが修正されます。
- 2026-10-31:CWP バージョン 1.30 がリリースされ、当時のすべてのユーザーパネル修正を含みます。
- 2026-11-02:VulnCheck が Valentin Lobstein(Chocapikk)をクレジットする3つのアドバイザリを公開し、3つの CVE レコードが公開されます。
よくある質問
管理パネルも影響を受けますか?
3つのアドバイザリが説明しているのはユーザーパネル、そのログインフロー、そのモジュールです。2030番ポートの管理パネルは別のインターフェースです。VulnCheck のアドバイザリは欠陥がそこに到達すると主張しておらず、管理者アクセスには独自の認証パスがあります。
リダイレクトバイパスだけでコード実行ができますか?
いいえ。CVE-2026-73696 は未認証リクエストがユーザーパネルの機能に到達することを許します。コード実行は CVE-2026-73695 のインクルードパスまたは CVE-2026-73697 の書き込みとシェルコマンドからもたらされ、バイパスがそれらを資格情報なしで到達可能にします。
3つの CVE で修正バージョンが異なるのはなぜですか?
リダイレクトバイパスは2026年9月8日のユーザーパネル バージョン 1.12 で修正されましたが、トラバーサルと phpini_editor の修正はバージョン 1.16 で到着しました。1.12 から 1.15 のサーバーは3つの欠陥のうち2つを依然として抱えています。
デプロイの規模はどのくらいですか?
ベンダーは35,000以上のサーバーが Control Web Panel を実行しており、コミュニティは94,000人と述べています。製品は AlmaLinux、Rocky Linux、RHEL、CentOS のホスティングサーバーを対象としています。
この欠陥は自己増殖しましたか?
自己増殖を主張する情報源はありません。チェーンにはユーザーパネルのポートが到達可能であることが必要で、アドバイザリにはパネルが単独で他のホストに増殖する記述はありません。
Ostorlab でホスティングパネルを把握する
Ostorlab のアタックサーフェスディスカバリーは、管理対象レンジのインターネット露出ホストをインベントリし、2082 や 2030 などのホスティングパネルのポートを公開しているサーバーを見つけて、アドバイザリと照合できます。Ostorlab でスキャンを開始して、どのパネルを先に更新すべきか把握してください。
参考文献
- VulnCheck の CVE-2026-73696 に対するアドバイザリ「Control Web Panel (CWP) < 1.12 Execution After Redirect in CWPUserIndex」、2026年11月2日公開、CVSS v4.0 9.3 Critical、CWE-698:https://www.vulncheck.com/advisories/control-web-panel-cwp-execution-after-redirect-in-cwpuserindex(2026年11月2日確認)
- VulnCheck の CVE-2026-73695 に対するアドバイザリ「Control Web Panel (CWP) < 1.16 Path Traversal via services/users/index.php」、2026年11月2日公開、CVSS v4.0 8.7 High、CWE-98:https://www.vulncheck.com/advisories/control-web-panel-cwp-path-traversal-via-services-users-index-php(2026年11月2日確認)
- VulnCheck の CVE-2026-73697 に対するアドバイザリ「Control Web Panel (CWP) < 1.16 File Write and Command Injection via phpini_editor」、2026年11月2日公開、CVSS v4.0 8.7 High、CWE-22 および CWE-78:https://www.vulncheck.com/advisories/control-web-panel-cwp-file-write-and-command-injection-via-phpini-editor(2026年11月2日確認)
- CVE-2026-73696 レコード、VulnCheck の CNA エントリ、2026年11月2日公開:https://www.cve.org/CVERecord?id=CVE-2026-73696(2026年11月2日確認)
- CVE-2026-73695 レコード、VulnCheck の CNA エントリ、2026年11月2日公開:https://www.cve.org/CVERecord?id=CVE-2026-73695(2026年11月2日確認)
- CVE-2026-73697 レコード、VulnCheck の CNA エントリ、2026年11月2日公開:https://www.cve.org/CVERecord?id=CVE-2026-73697(2026年11月2日確認)
- Control Web Panel の変更履歴、2026年9月8日リリースのユーザーパネル バージョン 1.12 と2026年10月31日のバージョン 1.30 までの履歴を記録:https://control-webpanel.com/changelog(2026年11月2日確認)
- Control Web Panel のホームページ、35,000以上のサーバーが CWP を実行し、94,000人のコミュニティメンバーがいると記載:https://control-webpanel.com/(2026年11月2日確認)
- Control Web Panel のデモページ、ユーザーパネルのポート 2082 と管理パネルのポート 2030 を記録:https://control-webpanel.com/demo(2026年11月2日確認)
- CISA KEV カタログの JSON フィード、3つの CVE について検索、2026年11月2日時点で一致なし:https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json(2026年11月2日確認)