element-hq / element-hq/element-meta

Don't allow multiple people in DMs

Open
#320 29 comments 11 reactions 0 assignees View on GitHub
A-DMs A-Immutable-DMs O-Uncommon T-Enhancement X-Needs-Product
Dominant language
No language data
Stars
112
Forks
25
Avg merge
6h 6m
Merged PRs (30d)
4

Description

### Description

I just discovered the horrifying fact that you can invite people to a 1:1 chat. I tested this just now and the 3rd user was indeed able to join after an invite. Why the hell is this allowed by the client/server/spec?

I have never seen this behaviour in any messaging service. This completely ruins the sanctity of personal chats between people, because a 1:1 chat can be converted to a group chat at any point, exposing the chat history.

This means that one can have no expectation of privacy on Matrix, and will always have to be guarded in conversations, because there is the (major or minor, depending on the persons involved) chance that the other user can invite a 3rd party to the chat and let them see the entire chat history between the first 2 users.

There is also the chance that a non-tech-savvy user mistakenly invites a 3rd user to the chat, resulting in the same problem.

### Steps to reproduce

- Start a chat with a single user
- Create a long chat history over a long time period, including several private/personal messages.
- Invite a 3rd user and watch them join, exposing the entire chat history in the process irrevocably.

### Describe how what happens differs from what you expected.

_Neither_ user in a 1:1 chat should be able to invite another user. This functionality should be disabled for _all_ 1:1 chats.

If a user creates a group chat by inviting _at least_ 2 people, then the invite function could stay enabled.

### Version information

- **Platform**: web

For the web app:

- **URL**: app.element.io (Synapse 1.33.2)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.