Offenlegung sensibler Informationen: OAuth2 client secret in Admin-Einstellungen offengelegt (nicht maskiert)

Problembeschreibung

Während einer Sicherheitsüberprüfung unserer angepassten Discourse-Bereitstellung haben wir eine potenzielle Offenlegung sensibler Informationen in der Benutzeroberfläche Admin “>” Einstellungen bezüglich OAuth2-Clientgeheimnissen festgestellt.

Details

  • Auf der Admin-Konfigurationsseite wird das OAuth2-Clientgeheimnis (und potenziell andere sensible Token/Schlüssel) im Klartext angezeigt, anstatt maskiert zu werden (z. B. mit Sternchen).

  • Administratoren müssen das Klartext-Geheimnis direkt in die Einstellungen eingeben. Jeder mit Zugriff auf die Admin-Benutzeroberfläche kann das gesamte Geheimnis einsehen.

  • Wenn ein Angreifer Zugriff auf eine Admin-Sitzung erhält (auch vorübergehend), könnte er das Client-Geheimnis leicht erhalten und es für unbefugte OAuth2-Token-Anfragen verwenden oder um Anfragen an Drittanbieterdienste zu fälschen.

Sicherheitsauswirkungen

  • Die Offenlegung von Geheimnissen im Klartext in der Admin-Benutzeroberfläche erhöht das Risiko einer Offenlegung von Anmeldeinformationen.

  • Das Fehlen einer Maskierung entspricht nicht den bewährten Sicherheitspraktiken für den Umgang mit Geheimnissen.

  • Die Geheimnisse/Token könnten für Eskalation von Berechtigungen, Identitätsdiebstahl oder für weitere Angriffe auf integrierte Dienste missbraucht werden.

Fragen

  • Gibt es einen Plan, sensible Felder wie OAuth2-Geheimnisse in der Admin-Einstellungen-Benutzeroberfläche zu maskieren (z. B. Anzeige als ****** mit der Option, sie bei Bedarf anzuzeigen)?

  • Gibt es empfohlene Ansätze oder Plugins, um den Schutz sensibler Anmeldeinformationen in Discourse-Bereitstellungen zu verbessern?

  • Wurde dieses Problem bereits diskutiert? Gibt es Workarounds, bis eine offizielle Korrektur verfügbar ist?

Vielen Dank für Ihre Aufmerksamkeit für dieses wichtige Sicherheitsproblem!

Hallo @Evie_Tao

Sie melden viele Sicherheitsbedenken. Haben Sie darüber nachgedacht, sie auf HackerOne zu melden, wie im GitHub-Repository beschrieben?

2 „Gefällt mir“

Wir betrachten die Offenlegung von Informationen gegenüber Administratoren nicht als Problem, aber ja, sie sollte als sensibel gekennzeichnet werden, um nicht unnötigerweise angezeigt zu werden, genauso wie z. B. google_oauth2_client_secret.

Dies ist eine einfache Korrektur:

Es gibt einen Kompromiss zwischen Geheimhaltung und Bequemlichkeit; wenn die Geheimnisse in der Benutzeroberfläche nicht entschlüsselt werden können, würde dies nur eine trügerische Sicherheit bieten, da es andere Möglichkeiten für einen Administrator gibt, sie leicht aus der Datenbank auszulesen.

Jegliche Geheimnisse (eigentlich jede Website-Einstellung) können jedoch über die Umgebung angegeben werden, dann werden sie nicht in der Admin-Benutzeroberfläche angezeigt.

(oder @pmusaraj?)

2 „Gefällt mir“