Error de duplicación de lista de correo con implicaciones de seguridad

Se podría argumentar que, dado que el mensaje es el mismo, tiene un único ID de mensaje. De hecho, para el ejemplo en cuestión, el autor original compuso el mensaje en Gmail (que asignó el ID del mensaje) y se envió a dos direcciones de listas de correo en el mismo servidor. Esto no es infrecuente, por ejemplo, podría ser un comunicado de prensa común para gerentes y médicos, cada uno de los cuales se encuentra en sus propias listas de correo. Puede haber un problema médico dentro del comunicado de prensa que necesite discusión, por lo que un médico podría responder (y la dirección de Respuesta a: se habría establecido en la lista de médicos, aunque el encabezado Para: todavía tenía ambas listas de correo mencionadas). De manera similar, los gerentes podrían desear discutir su propia visión de las noticias. Responderían y el encabezado de Respuesta a: relevante se utilizaría para reflejar la lista de gerentes. Si un remitente hubiera hecho uso de las direcciones Para: al hacer una “respuesta a todos”, se habría generado un mensaje de rebote de la lista de la que no eran miembros.

El comportamiento anterior no es tan inusual, pero parece que Discourse no puede manejarlo correctamente si se usa como un espejo de lista de correo y mantiene separadas las respuestas bifurcadas, ya que todas estarán vinculadas al ID de mensaje original y a la categoría en la que apareció esa publicación por primera vez.

Esto podría significar que los gerentes podrían ver las publicaciones de los médicos, por ejemplo, si el médico, al responder a la lista de médicos, tuviera esa publicación que apareciera en el espejo de la lista de gerentes debido a la forma en que Discourse archiva los mensajes.

Una solución podría ser verificar cada dirección en el encabezado Para: de los mensajes entrantes para ver si coincidía con una dirección de espejo de lista de correo en cada una de las configuraciones de Categoría. Si lo hiciera, se podría publicar una copia del mensaje en cada categoría coincidente, y potencialmente podría haber varias copias de la publicación en diferentes categorías. Luego, si llegaran respuestas, el ID del mensaje podría usarse, como es el caso actualmente, pero solo si la línea Para: coincidiera también con la categoría.