Description du problème
Lors d’une revue de sécurité de notre déploiement personnalisé de Discourse, nous avons découvert une divulgation potentielle d’informations sensibles dans l’interface Admin > Paramètres concernant les secrets clients OAuth2.
Détails
-
Dans la page de configuration d’administration, le secret client OAuth2 (et potentiellement d’autres jetons/clés sensibles) sont affichés en texte brut, au lieu d’être masqués (par exemple, avec des astérisques).
-
Les administrateurs sont tenus de saisir directement le secret en texte brut dans les paramètres. Toute personne ayant accès à l’interface d’administration peut voir le secret entier.
-
Si un attaquant obtient un accès (même temporaire) à une session d’administrateur, il pourrait facilement obtenir le secret client et l’utiliser pour des requêtes de jetons OAuth2 non autorisées ou pour usurper des requêtes à des services tiers.
Impact sur la sécurité
-
L’exposition en texte brut des secrets dans l’interface d’administration augmente le risque de fuite d’informations d’identification.
-
Le manque de masquage n’est pas conforme aux meilleures pratiques de sécurité pour la gestion des secrets.
-
Les secrets/jetons pourraient être détournés pour une escalade de privilèges, une usurpation d’identité ou d’autres attaques contre les services intégrés.
Questions
-
Y a-t-il un plan pour masquer les champs sensibles comme les secrets OAuth2 dans l’interface des paramètres d’administration (par exemple, les afficher sous forme de ****** avec la possibilité de les révéler si nécessaire) ?
-
Existe-t-il des approches recommandées ou des plugins pour améliorer la protection des informations d’identification sensibles dans les déploiements Discourse ?
-
Ce problème a-t-il déjà été discuté ? Des solutions de contournement sont-elles disponibles en attendant une correction officielle ?
Merci de votre attention à cette importante préoccupation de sécurité !