Modéliser les menaces d’une fonctionnalité
1 / 10 · ≈ 11 min restantes
Le problème
Le 11 janvier 2024, GitLab publie 7 versions correctives, de 16.1.6 à 16.7.2, pour la CVE-2023-7028, notée 10.0 sur 10. L’avis : « user account password reset emails could be delivered to an unverified email address ». Un attaquant qui demandait une réinitialisation pour ton compte pouvait recevoir le lien et choisir un nouveau mot de passe.
GitLab explique aux admins quoi chercher dans leurs logs : des requêtes vers /users/password dont le paramètre email est un tableau JSON de plusieurs adresses. Le bug est arrivé avec la 16.1.0, le 1er mai 2023 : il est resté en ligne huit mois. Sur les comptes avec double authentification, l’attaquant pouvait changer le mot de passe mais pas se connecter.
Un chercheur l’a signalé via le programme de bug bounty de GitLab. La question qui l’aurait trouvé tient en une ligne : qui choisit l’adresse qui reçoit le lien ? Un modèle de menaces pose ce genre de questions exprès, dès la conception. Plus bas, tu en fais un pour une fonction « mot de passe oublié », avec STRIDE comme liste de contrôle.