apache / apache/cloudstack

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

Ouverte
#13,341 6 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
component:management-server type:enhancement
Langage dominant
Java
Étoiles
3.1k
Forks
1.4k
Merge moyen
6 j 19 h
PR mergées (30 j)
32

Description

### 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.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par le flux d’installation de CloudStack Management, la connexion à la management UI et la clé de base de données située dans /etc/cloudstack/management/key. Suivez l’endroit où le mot de passe administratif par défaut et la clé de chiffrement sont créés et utilisés. Le travail est considéré comme terminé lorsque les deux valeurs sont générées à partir d’une entropie fiable avant l’exécution, qu’il n’existe aucune valeur par défaut utilisable et que le comportement de l’installation est couvert par des tests.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java
Domaine
authentication, cloud, databases, security
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Active
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.