PT-2020-17844

CVE-2020-4035

·

Publicado

2020-06-03

·

Atualizado

2020-06-11

Descrição por

CVSS 3.1
5.9
Média
MétricasAV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H
Nome do software vulnerável e versões afetadas
Versões do @nozbe/watermelondb anteriores à 0.15.1
Versões do @nozbe/watermelondb anteriores à 0.16.2
Descrição
Um ID de registro criado de forma maliciosa pode explorar uma vulnerabilidade de injeção de SQL na implementação do adaptador iOS, fazendo com que o aplicativo exclua todos os registros ou registros selecionados do banco de dados. Isso pode ocorrer em aplicativos que não validam IDs e utilizam o Watermelon Sync ou o método de baixo nível database.adapter.destroyDeletedRecords. O risco à integridade é baixo, pois os registros excluídos de forma maliciosa não serão sincronizados; portanto, o logout e o login restaurarão todos os dados. Não há conhecimento de nenhuma forma de violar a confidencialidade por meio dessa vulnerabilidade. A exploração completa da injeção de SQL é mitigada porque não é possível aninhar uma consulta de inserção/atualização dentro de uma consulta de exclusão no SQLite.
Recomendações
Para versões anteriores à 0.15.1, atualize para a versão 0.15.1 ou posterior.
Para versões anteriores à 0.16.2, atualize para a versão 0.16.2 ou posterior.
Como solução temporária, certifique-se de que seu serviço de back-end sanitize os IDs de registros enviados no endpoint “pull sync”, de modo que apenas IDs que correspondam a /^[a-zA-Z0-9 -.]+$/ sejam retornados.
Se você usar destroyDeletedRecords diretamente, valide todos os IDs passados da mesma forma.
Explorabilidade
Correção
Impactos
Pesquisadores
Fornecedores
Produtos afetados
Identificadores relacionados
GHSA-38F9-M297-6Q9G
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾