Detalhes de categoria segura vazados por e-mail

Instância Private Discourse, enviando e-mails via Mailgun. 2.4b1.

Entre várias categorias protegidas por grupos:

  • CategoryA protegida por GroupA
  • CategoryB protegida por GroupB

Também existem dois usuários:

  • User1

    • é membro do GroupA.
  • User2

    • é membro do GroupA e do GroupB

Nenhum dos usuários visitou o site há mais de 24 horas. Ambos têm notificações configuradas para todas as novas publicações nas categorias às quais têm acesso.

Um novo tópico foi publicado inicialmente em CategoryA. Foi rapidamente reclassificado para CategoryB.

Várias horas depois, ao verificar os logs no MailGun, pude ver que tanto User1 quanto User2 receberam notificações por e-mail sobre o novo tópico, mas o título do e-mail indicava que o tópico estava em CategoryB, categoria da qual User2 não tinha conhecimento prévio da existência.

email time window mins está configurado para 5 minutos; a postagem foi reclassificada muito antes desse tempo ter passado. A nota abaixo desse campo diz: Aguarde (n) minutos antes de enviar qualquer e-mail de notificação, para dar aos usuários a chance de editar e finalizar suas postagens.

Parece haver algo errado com a lógica das notificações por e-mail: a postagem foi movida segundos após a publicação, e os e-mails comprovam que a reclassificação ocorreu antes do envio. O e-mail foi enviado de uma categoria da qual o usuário não tinha conhecimento ou acesso, expondo, em última análise, informações à parte errada.

No pior caso, esperaria que o e-mail atribuísse a CategoryA, à qual User1 tinha acesso, embora isso ainda seria indesejável se o tópico fosse movido de volta para fora dessa categoria antes que o e-mail pudesse ser enviado. Idealmente, isso seria verificado no momento em que o e-mail deveria ser enviado, o que protegeria contra erros humanos e resultaria em nenhuma vazagem de informações.

3 curtidas

Obrigado pelo relatório. O problema foi corrigido em FIX: Don't send notification email when user isn't allowed to see topic · discourse/discourse@d513c28 · GitHub e portado de volta para as versões beta e estável.

11 curtidas