CVE-2022-24693
Descrição
Os dispositivos Baicells Nova436Q e Neutrino 430 com firmware até QRTB 2.7.8 possuem credenciais embutidas que são facilmente descobertas e podem ser usadas por atacantes remotos para autenticar via ssh. (As credenciais são armazenadas no firmware, criptografadas pela função crypt.)
Pontuação CVSS
CVSS 9.8
Tipo de Vulnerabilidade
CWE-284: Controle de Acesso Impróprio
Fornecedor do Produto
BaiCells
Base de Código do Produto Afetado
- NOVA436Q - QRTB 2.7.8 (Provavelmente todas as versões antes de 2.9.x)
- NEUTRINO430 - QRTB 2.7.8 (Provavelmente todas as versões antes de 2.9.x)
Componente Afetado
Nomes de usuário e senhas são estáticos no firmware, criptografados usando crypt(), e portanto são quebráveis.
Tipo de Ataque
Remoto
Impacto Execução de Código
Verdadeiro
Impacto Negação de Serviço
Verdadeiro
Impacto Escalação de Privilégios
Verdadeiro
Verdadeiro
Vetores de Ataque
De fábrica, o firmware possui nomes de usuário e senhas estáticos.
Referência
O fornecedor confirmou ou reconheceu a vulnerabilidade?
Sim: https://community.na.baicells.com/t/important-security-notice-for-nova-436q-430-neutrino-430/1729
Descobridor
Luke Jenkins
Linha do tempo
- 2021-12-07 - E-mail para a Baicells solicitando que publiquem uma Política de Divulgação de Vulnerabilidades.
- 2021-12-08 - Discussão por e-mail com a Baicells incluindo um rascunho de uma Política de Divulgação de Vulnerabilidades e uma fonte de chaves PGP para um ponto de contato.
- 2021-12-08 - E-mail criptografado com PGP enviado ao ponto de contato com detalhes da vulnerabilidade.
- 2022-02-08 - Notificação recebida da Baicells de que eles corrigiram o problema em seu próximo lançamento de software QRTB 2.9.
- 2022-03-22 - A Baicells solicita que as senhas em texto puro não sejam incluídas nesta página.
- 2022-03-23 - Resposta por e-mail à Baicells apontando que não incluir a senha apenas proporcionaria a ilusão de segurança.
- 2022-03-28 - A Bailcells publica a versão de software QRTB 2.9.10 com correção para este problema.
- 2022-03-28 - Esta página, que estava em branco, foi modificada para incluir detalhes da vulnerabilidade.
- 2022-03-28 - Solicitação enviada à Mitre pedindo que publiquem o CVE-2022-24693.
- 2022-03-28 - E-mail da Baicells solicitando a remoção das senhas em texto puro desta página.
- 2022-03-28 - Resposta à Baicells recusando o pedido com base no cronograma de divulgação.
- 2022-03-29 - Notificação por e-mail da Equipe de Atribuição de CVE da mitre informando que a solicitação para publicar o CVE-2022-24693 foi recebida e processada.
- 2022-03-29 - Ligação telefônica da liderança da UETN solicitando que o pedido da Baicell fosse atendido.
- 2022-03-29 - E-mail enviado à Baicells notificando-os de que o pedido para remover as senhas da página principal seria atendido, mas que as senhas ainda estariam disponíveis no histórico do git e via archive.org.
- 2022-03-29 - Senhas em texto puro ofuscadas nesta página.
- 2022-03-30 - E-mail da Baicells informando que estavam publicando um aviso sobre esta vulnerabilidade em seu site e que estavam começando a notificar os clientes.
- 2022-03-30 - E-mail da Baicells enviado para uma lista de e-mails de clientes alertando sobre a vulnerabilidade de segurança e com links para este aviso e para o software corrigido.
Detalhes:
- Usuário
admin com senha Baicells armazenada usando o algoritmo unix crypt() DES.
- Usuário não documentado e não configurável
anonymous com senha pqmz325 armazenada usando o algoritmo unix crypt() DES.
- Usuário não documentado, não configurável (mas aparentemente inutilizável para ssh)
root com senha qpa;10@) armazenada usando o algoritmo unix crypt() DES. O fornecedor afirma que a senha é exclusiva por dispositivo, mas isso não foi confirmado.
Como reproduzir
- Baixe o firmware do site do fornecedor, sem necessidade de login. Como cliente, adoro isso; mas do ponto de vista de segurança, é importante entender como é fácil para um agente mal-intencionado obter o firmware.
- Execute binwalk na imagem do firmware, uma ferramenta que extrai todos os arquivos contidos no firmware. Pegue os nomes de usuário e hashes de senha de /etc/passwd e /etc/shadow.
- Use hashcat para quebrar os hashes. Além de ter sido projetada pensando em CPUs com mais de 30 anos, a função unix crypt() que "protege" essas senhas também as limita a 8 caracteres. As senhas estouram.
- As credenciais do usuário anônimo podem ser usadas para acessar o dispositivo via ssh. Vou te poupar o trabalho de uma varredura de portas ou de procurar nos arquivos de configuração do passo 2: o dropbear está escutando na porta 27149.
Notas
Este é meu primeiro CVE publicado, então por favor desculpem (ou enviem um pull request) qualquer erro.
Agradeço ao pessoal da UETN pela assistência e apoio neste caso.
Agradeço também à equipe da Baicells NA por trabalharem comigo na correção deste problema.