Présentation de la faille
Une équipe de recherche de Wiz a découvert une faille de sécurité critique dans Azure Cosmos DB, appelée CosmosEscape. Cette faille permettait aux attaquants de compromettre toutes les bases de données du service, y compris celles de Microsoft.
Fonctionnement de la faille
La faille était liée à l'API Gremlin de Cosmos DB, qui permet d'exécuter des requêtes de type graphique. Les attaquants pouvaient utiliser cette API pour exécuter du code arbitraire sur le serveur, en exploitant une faille de sandbox dans le moteur Gremlin.
g.V().hasLabel('user').has('age', gt(30)).out('knows').values('name')
Cette faille permettait aux attaquants d'accéder à la clé principale de n'importe quelle base de données Cosmos DB, ce qui leur donnait un accès total en lecture et en écriture.
Impact de la faille
La faille avait un impact important, car elle permettait aux attaquants de cibler des bases de données spécifiques en fonction de leur propriétaire ou de leur emplacement. Elle affectait également les bases de données privées et isolées, car les attaquants pouvaient contourner les mécanismes de sécurité pour y accéder.
Résolution de la faille
Microsoft a rapidement résolu la faille en déployant une mise à jour de sécurité. L'équipe de Cosmos DB a également travaillé à une refonte de l'architecture pour améliorer la sécurité du service.