PaulB
Well-known member
- Affected version
- <= 2.2.0 Beta 1
This was initially submitted as a potential security vulnerability via the contact form, but it was deemed to be a standard bug, not a vulnerability.
Under certain circumstances, users can bump each other out of conversations. When this happens, there is no way for a user to rejoin the conversation.
Under certain circumstances, users can bump each other out of conversations. When this happens, there is no way for a user to rejoin the conversation.
- Alice and Bob are in a conversation with a number of other people.
- Alice no longer wants Bob to be in the conversation.
- Alice convinces Bob to ignore her. (It's not hard to imagine that this is difficult to achieve if they're already on bad terms.)
- Alice adds Bob to the conversation that he's already in.
- Because Bob ignores Alice, Bob's recipient_state is set to deleted_ignored.
- Bob has no way to rejoin the conversation, and nobody can add him back.
- Even though Bob is already in the conversation, he's included in the $recipientUsers array.
- Because Bob->isIgnoring(Alice) is true, $state will be set to deleted_ignored.
- $recipient->recipient_state != $state because $state is now 'deleted_ignored', so the recipient_state is overwritten.