SSH key pairs are very buggy
- Langage dominant
- Java
- Étoiles
- 3.1k
- Forks
- 1.4k
- Merge moyen
- 6 j 19 h
- PR mergées (30 j)
- 32
Description
### problem
Having the ssh key pairs being identified by their name leads to a lot of weird issues.
1. The key pair validator allows commas(and other special characters like an ampersand) in the key pair name.
2. The `deployVirtualMachine` command `keypairs` parameter isn't escaped, this breaks on key pairs containing commas.
4. The `deployVirtualMachine` command `keypair` works with commas
5. The UI breaks when a key pair contains commas, below is a single key containing a bunch of commas
6. If the API consumer assumes the key pair name is safe and validated by cloudstack it *cloud* lead to a command injection(but it requires a lot of wrong assumptions)
### versions
CloudStack 4.22.0.0
### The steps to reproduce the bug
You can use the UI to observe most of the issues:
1. Create a new key pair with a comma in the name eg. `test, test`
2. Try creating a new instance with said key
### What to do about it?
1. Add a new `keypairId` array parameter to all the endpoint which access key pair name.
2. Mark the `keypair` and `keypairs` parameters deprecated.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par suivre les endpoints d’API qui acceptent ou permettent d’accéder à des noms de paires de clés, puis reproduisez la paire de clés contenant une virgule via l’UI et les commandes deployVirtualMachine. Identifiez tous les endpoints concernés et leurs paramètres keypair/keypairs existants. Le travail est considéré comme terminé lorsque les paramètres de tableau keypairId requis sont disponibles et que les paramètres basés sur le nom sont marqués comme deprecated, sans interrompre les workflows documentés.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- api, backend-api-design
- Type d'issue
- Bug
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 43/100