Bug de espelhamento de lista de emails com implicações de segurança

Poderia argumentar que, como a mensagem é a mesma, ela tem um único ID de mensagem. De fato, para o exemplo em questão, o autor original compôs a mensagem no Gmail (que atribuiu o ID da mensagem) e ela foi enviada para dois endereços de listas de discussão no mesmo servidor. Isso não é incomum, por exemplo, pode ser um comunicado de imprensa comum para gerentes e clínicos, cada um dos quais está em suas próprias listas de e-mail. Pode haver uma questão médica dentro do comunicado de imprensa que precise de discussão, então um clínico pode responder (e o endereço Reply-to: teria sido definido para a lista de clínicos, mesmo que o cabeçalho To: ainda tivesse ambas as listas de discussão mencionadas). Da mesma forma, os gerentes podem querer discutir sua própria visão das notícias. Eles responderiam e o cabeçalho Reply-to: relevante seria usado para refletir a lista de gerentes. Se um remetente tivesse feito uso dos endereços To: fazendo um “responder a todos”, uma mensagem de rejeição teria sido gerada da lista da qual eles não eram membros.

O comportamento acima não é tão incomum, mas parece que o Discourse não consegue lidar com isso corretamente se for usado como um espelho de lista de discussão e mantiver as respostas ramificadas separadas, pois todas serão vinculadas ao ID da mensagem original e à categoria em que essa postagem apareceu pela primeira vez.

Isso pode significar que os gerentes poderiam ver as postagens dos clínicos, por exemplo, se o clínico, respondendo à lista de clínicos, tivesse essa postagem aparecendo no espelho da lista de gerentes devido à forma como o Discourse arquiva as mensagens.

Uma solução poderia ser verificar cada endereço no cabeçalho To: das mensagens recebidas para ver se ele correspondia a um endereço de espelho de lista de discussão em cada uma das configurações de Categoria. Se correspondesse, uma cópia da mensagem poderia ser postada em cada categoria correspondente, e poderiam haver várias cópias potencialmente da postagem em diferentes categorias. Então, se alguma resposta chegasse, o ID da mensagem poderia ser usado, como é o caso atualmente, mas apenas se a linha To: também correspondesse à categoria.