Divulgazione di informazioni sensibili: segreto client OAuth2 esposto nelle impostazioni di amministrazione (non mascherato)

Descrizione del problema

Durante una revisione della sicurezza della nostra distribuzione Discourse personalizzata, abbiamo riscontrato una potenziale divulgazione di informazioni sensibili nell’interfaccia Admin

Settings riguardo ai segreti del client OAuth2.

Dettagli

  • Nella pagina di configurazione dell’amministratore, il segreto del client OAuth2 (e potenzialmente altri token/chiavi sensibili) sono mostrati in testo in chiaro, anziché essere mascherati (ad esempio con asterischi).

  • Gli amministratori sono tenuti a inserire direttamente il segreto in chiaro nelle impostazioni. Chiunque abbia accesso all’interfaccia utente di amministrazione può vedere l’intero segreto.

  • Se un attaccante ottiene accesso (anche temporaneamente) a una sessione di amministrazione, potrebbe facilmente ottenere il segreto del client e utilizzarlo per richieste di token OAuth2 non autorizzate o per falsificare richieste a servizi di terze parti.

Impatto sulla sicurezza

  • L’esposizione in testo in chiaro dei segreti nell’interfaccia utente di amministrazione aumenta il rischio di fuga di credenziali.

  • La mancanza di mascheramento non è in linea con le migliori pratiche di sicurezza per la gestione dei segreti.

  • I segreti/token potrebbero essere abusati per l’escalation dei privilegi, l’impersonificazione o ulteriori attacchi contro i servizi integrati.

Domande

  • C’è un piano per mascherare campi sensibili come i segreti OAuth2 nell’interfaccia delle impostazioni di amministrazione (ad esempio, visualizzarli come ****** con l’opzione di rivelarli se necessario)?

  • Ci sono approcci o plugin consigliati per migliorare la protezione delle credenziali sensibili nelle distribuzioni Discourse?

  • Questo problema è stato discusso in precedenza? Ci sono soluzioni alternative disponibili fino a una correzione ufficiale?

Grazie per la vostra attenzione a questa importante preoccupazione di sicurezza!

Ciao @Evie_Tao
Stai segnalando molte preoccupazioni sulla sicurezza. Hai pensato di segnalarle su HackerOne, come spiegato nel repository GitHub?

2 Mi Piace

Non consideriamo la divulgazione di informazioni agli amministratori un problema, ma sì, dovrebbe essere contrassegnata come sensibile per evitare che venga visualizzata inutilmente, allo stesso modo di, ad esempio, google_oauth2_client_secret.

Questa è una semplice correzione:

C’è un compromesso tra segretezza e convenienza; non consentire lo svelamento dei segreti nell’interfaccia utente fornirebbe solo un’illusione di inaccessibilità, ci sono altri modi per un amministratore per leggerlo facilmente dal database.

Tuttavia, qualsiasi segreto (qualsiasi impostazione del sito, in realtà) può essere specificato tramite l’ambiente, quindi non verrà visualizzato nell’interfaccia utente di amministrazione.

(giusto @pmusaraj?)

2 Mi Piace