Control Web Panelに認証回避の脆弱性、1.12で修正
Control Web Panelのユーザーパネルに、有効なホスティングのユーザー名だけで認証を回避でき、root権限の奪取につながる脆弱性が公表されました。ネットワークから届く環境では修正版へ更新し、適用までは接続元を絞ってください。
急ぎ度: 至急
CVSS v3は9.8で認証なしにネットワークから到達でき、root権限の奪取まで連鎖しうる一方、修正版がすでに出ているためです。
関係があるか
Control Web Panelでホスティングサーバーを運用している組織が対象です。とくにユーザーパネルがインターネットや広い社内ネットワークから届く環境は優先して確認してください。
| 製品 | 影響を受ける版 | 修正版 |
|---|---|---|
| Control Web Panel(CWP) | webpanel_version 1.12未満 | webpanel_version 1.12 |
確かめ方
- 1CWPの管理画面などで、いま入っているwebpanel_versionを確認する。1.12未満なら対象です。
- 2ユーザーパネルが外部やほかの拠点から到達できるかを、ファイアウォールやクラウドのセキュリティグループの設定で確認する。
- 3ベンダーのchangelogで1.12の内容を確認し、自社の版が更新対象に入っているかを照らし合わせる。
何が起きたか
Control Web Panelのユーザーパネルに、ログインしていない人が認証を飛び越えて内部の機能に届いてしまう脆弱性が見つかりました。webpanel_version 1.12未満が対象で、修正版は1.12です。
ログインしていない利用者をログイン画面へ転送する処理に原因があります。転送の指示は出すものの、そこでプログラムを終了していないため、後ろの処理が動き続けます。CWPUserIndexのunauthenticatedFlow()がtoLoginWithIntendedUri()を呼ぶ箇所で、モジュールを呼び出す処理が認証なしで実行されます。
CVEの記録には、認証前の段階からroot権限の取得まで連鎖しうると書かれています。パネルの不具合が、サーバー全体の乗っ取りにつながりかねないということです。
攻撃の流れ
-
1
未認証でアクセス
ログインしていない状態で、ユーザーパネルに要求を送ります。
-
2
転送後も処理が継続
ログイン画面への転送指示が出たあとも、プログラムが終了せず先へ進みます。
-
3
認証なしで機能に到達
モジュールを呼び出す処理が動き、ユーザーパネルの機能に届きます。
-
4
root権限へ連鎖
認証前の段階から連鎖し、サーバーのroot権限の取得につながりえます。
どう悪用されるか
ネットワーク越しに悪用でき、利用者の操作は要りません。CVSSの評価では事前の権限も不要とされていますが、CVEの記録では、有効なホスティングのユーザー名を知っていることが前提になっています。パスワードは要りません。
ユーザー名は、ドメイン名や公開情報から推測される場合があります。名前が知られていないから安全、とは考えないほうが無難です。
悪用が成立すると、ユーザーパネルの機能に認証なしで届き、root権限の取得まで進みえます。その場合は、同じサーバーに載っているサイトやメール、顧客のデータ、設定がすべて攻撃者の手に渡るおそれがあります。
今すぐやること
-
1
1.12へ更新する
CWPをwebpanel_version 1.12以降に更新します。更新前に、サーバーのスナップショットか設定のバックアップを取っておくと、戻せるので安心です。
-
2
更新後の版を確認する
管理画面などで版が1.12以降になっているかを確認します。複数台を運用している場合は、1台ずつ版を控えて漏れを防ぎます。
-
3
ユーザーパネルの公開範囲を見直す
ユーザーパネルに到達できる接続元を、必要なIPアドレスや社内ネットワークに絞ります。更新後も、不特定多数に開けておく理由がなければ絞ったままにします。
-
4
公表前後のログを調べる
更新前にユーザーパネルが外部へ開いていた場合は、見覚えのないアクセス、未知のユーザーやファイル、root権限での設定変更がないかを調べます。不審な点があれば、サーバーを隔離して調査します。
-
5
ベンダーの告知を確認する
ベンダーのchangelogと脆弱性の告知で、影響範囲や追加の注意事項が更新されていないかを確かめます。
すぐ更新できないとき
すぐに更新できないときは、ファイアウォールでユーザーパネルへの接続元を信頼できるIPアドレスだけに絞ります。これは被害を減らすつなぎで、脆弱性そのものは直りません。1.12への更新は予定どおり進めてください。
背景
Control Web Panelは、ホスティング用のサーバーでWebサイトやメール、ドメインの設定を画面から扱うための管理ソフトです。サーバーの設定を書き換える権限をもつため、パネルの認証が破られると、その影響はパネルの中にとどまらず、サーバー全体に及びます。
今回の原因は、ログインしていない利用者を転送する処理で、転送の指示を出したあとにプログラムを終了していなかったことです。PHPでは、転送ヘッダーを出しても後続の処理が止まらないため、認証の判定とあわせて処理の終了まで書かないと、認証のすり抜けにつながることが知られています。複雑な攻撃手法ではなく、この終了処理の抜けが認証前の経路を開けてしまっています。
よくある質問
Q.管理者用のパネルは影響を受けますか。
Q.更新したあとも、侵害の調査は必要ですか。
この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
影響パッケージ
| パッケージ | 影響を受ける版 → 修正版 | |
|---|---|---|
| Control Web PanelControl Web Panel |
1.12 未満→ 1.12 |
1.12 |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
Control Web Panel (CWP) before webpanel_version 1.12 contains an execution after redirect vulnerability in the user panel authentication flow, where CWPUserIndex's unauthenticatedFlow() calls toLoginWithIntendedUri() which emits a redirect header without exit(), allowing PHP execution to continue and the module dispatcher include to run without authentication. Attackers with nothing more than a valid hosting username can bypass authentication to reach user-panel module code paths, enabling a pre-authentication chain to root access.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
参照URL
- web disclosure@vulncheck.com
- web vulncheck.com
- web disclosure@vulncheck.com
- web nvd.nist.gov
- web github.com
- web disclosure@vulncheck.com