apache / apache/cloudstack

[Hardening] F-13: Weak Default Password and Database Encryption Key.

オープン
#13,341 コメント 6 件 リアクション 0 件 担当者 0 名 GitHub で見る
component:management-server type:enhancement
主要言語
Java
スター
3.1k
フォーク
1.4k
平均マージ
6日 19時間
マージ済み PR(30日)
32

説明

### The required feature described as a wish

Image

**Description:** CloudStack ships with a default administrative password and database encryption key, both set to the string "password". Neither value is randomized at install time, and the administrator is not prompted to change them during setup. Note that the database encryption key cannot be changed afterwards.

**Affected Components:** Management

**Impact:** An attacker with knowledge of the default credentials, which are publicly documented, can authenticate to the CloudStack Management UI without any prior reconnaissance or effort. Additionally, if the database encryption key is not changed, an attacker who gains read access to the database (e.g., via SQL injection, a misconfigured backup, or direct server access) can decrypt all protected fields, including API secret keys, passwords, and other credentials, using the known default key.

**Steps to Reproduce:**
- Deploy a fresh CloudStack instance following the official documentation.
- Attempt to log in using the username `admin` and the password `password`.
- Observe that login succeeds without any prompt to change the default password.
- Separately, inspect the database encryption key on the management server:
- $ cat /etc/cloudstack/management/key
- Observe that the encryption key is set to the default value `password`.

**Recommended Remediation:** Generate a unique password and database encryption key from a reliable source of entropy during installation (before the system becomes operational). Neither value should have a usable default.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

CloudStack Management のインストールフロー、management UI へのログイン、/etc/cloudstack/management/key にあるデータベースキーから調査を始めます。デフォルトの管理者パスワードと暗号化キーがどこで作成され、使用されるかを追跡します。両方の値が運用前に信頼できるエントロピーから生成され、使用可能なデフォルト値が存在せず、インストールの動作がテストでカバーされていれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
authentication, cloud, databases, security
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。