Nozbe · @Nozbe/Watermelondb · CVE-2020-4035
**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.