PT-2020-17844 · Nozbe · @Nozbe/Watermelondb
Radexpublished
·
Publicado
2020-06-03
·
Atualizado
2020-06-11
·
CVE-2020-4035
CVSS v3.1
5.9
Média
| Vetor | AV: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.Correção
SQL injection
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
@Nozbe/Watermelondb