element-hq / element-hq/synapse
Alter ACL behaviour to prevent abuse
- Dominant language
- Python
- Stars
- 4.6k
- Forks
- 600
- Avg merge
- 5d 22h
- Merged PRs (30d)
- 51
Description
This issue has been migrated from [#16120](https://github.com/matrix-org/synapse/issues/16120).
---
**Description:**
Right now, when I ACL a server from my room on matrix, the users of that server are still in the room and able to join the room. This leads to an alternate copy of the room being propagated to all the servers that are blocked. I cannot see or moderate what is going on in this alternate copy of the room. The servers I block range from servers with rules that are not compatible with my own, to homeservers refusing to moderate CP. Having all these blocked servers able to communicate with eachother in a copy room is a problem for the matrix ecosystem and I have no doubt it leads to many new users abandoning the platform. If my room blocks matrix.org and some CP spammer servers, any matrix.org user will join and see CP, and I'd rather not have this happen.
Perhaps, instead, when a homeserver is added to the ACL list, all members from that server can first be kicked? The issue, as I understand it, is that accounts from the blocked homeserver remain in the room, and are merely unable to communicate to the unblocked ones. Thus, the blocked server is able to allow other accounts from the same server to join, and to federate to other blocked servers. New joins from a blocked server is permitted if there is one account from the blocked server in the room. If we kick them all first, then no accounts will manage to join in the future
I look forward to hearing your thoughts on this topic, and perhaps better ways to resolve this problem.
Contributor guide
Research direction
The issue names no file, test, or entry point; begin by locating Synapse's room ACL handling and reproducing the described federation and join behavior. Done should be a decided and implemented behavior that prevents users from blocked servers joining or propagating an alternate room, with regression coverage for ACL changes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- authorization, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100