Dans WatermelonDB (paquet NPM « @ Nozbe / watermelondb ») avant que les versions 0.15.1 et 0.16.2, un ID d’enregistrement construit de manière malveillante peut exploiter une vulnérabilité d’injection SQL dans la mise en œuvre de l’adaptateur iOS et provoquer l’application de supprimer tout ou enregistrements sélectionnés à partir de la base de données , ce qui provoque généralement l’application pour devenir inutilisable. Cela peut se produire dans les applications qui ne ID valide pas (pièces d’identité valides sont `/ ^ [a-zA-Z0-9 _-.] + $ /`) Et utilisez la synchronisation ou melon d’eau bas niveau `méthode database.adapter.destroyDeletedRecords` . Le risque d’intégrité est faible en raison du fait que les enregistrements malicieusement supprimés ne seront pas synchronisés, de sorte que la déconnexion-connexion restaureront toutes les données, bien que certains changements locaux risquent d’être perdues si la suppression malveillante provoque le processus de synchronisation à ne pas passer à l’étape de poussée. Aucune façon à la confidentialité de rupture avec cette vulnérabilité est connue. La pleine exploitation de l’injection SQL est atténué, car il est impossible d’imbriquer un insert / mise à jour requête dans une requête de suppression dans SQLite, et il est impossible de passer une deuxième requête séparée de points-virgules. Il y a aussi pas moyen connu possible à la confidentialité de violation par la suppression sélective des documents, parce que ces enregistrements ne seront pas synchronisés. Il est théoriquement possible que la suppression d’enregistrement sélectif pourrait provoquer une application à se comporter de manière non sécurisée si l’absence d’un dossier est utilisé pour prendre des décisions de sécurité par l’application. Ceci est patché dans les versions 0.15.1, 0.16.2 et 0.16.1-fix
https://github.com/Nozbe/WatermelonDB/security/advisories/GHSA-38f9-m297-6q9g
https://github.com/Nozbe/WatermelonDB/commit/924c7ae2a8d7d6459656751e5b9b1bf91a218025
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-4035