apache / apache/cloudstack

SSH key pairs are very buggy

Aberta
#12,925 2 comentários 0 reações 0 responsáveis Ver no GitHub
component:UI
Linguagem predominante
Java
Estrelas
3.1k
Forks
1.4k
Merge médio
6d 19h
PRs com merge (30d)
32

Descrição

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

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece rastreando os endpoints da API que aceitam ou acessam nomes de pares de chaves e, em seguida, reproduza o par de chaves que contém uma vírgula por meio da UI e dos comandos deployVirtualMachine. Identifique todos os endpoints afetados e seus parâmetros keypair/keypairs existentes. A tarefa estará concluída quando os parâmetros de array keypairId necessários estiverem disponíveis e os parâmetros baseados em nome estiverem marcados como deprecated sem interromper os workflows documentados.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
java
Domínio
api, backend-api-design
Tipo de issue
Bug
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Pouca atividade
Clareza
Razoavelmente clara
Facilidade para iniciantes
43/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.