RocketChat / RocketChat/Rocket.Chat

[BUG] External Users can deleted federated channels

Open
#20,209 2 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
46.1k
Forks
13.9k
Avg merge
3d 3h
Merged PRs (30d)
130

Description

Description:

A user that has permission to delete channels in server A can be invited to and subsequently delete a channel in server B.

Steps to reproduce:
  1. Federate two servers, A and B
  2. Invite user Alice from server A into a channel b in server B
  3. User Alice can delete b in server B using her permissions in server A
Expected behavior:

External users cannot delete federated channels

Actual behavior:

External users can delete federated channels.

Server Setup Information:
  • Version of Rocket.Chat Server: 3.9.4
  • Operating System: linux x64
  • Deployment Method: tar
  • Number of Running Instances: 2
  • DB Replicaset Oplog:
  • NodeJS Version: 12.18.4
  • MongoDB Version: 4.4.2
Client Setup Information
  • Desktop App or Browser Version: Desktop
  • Operating System: macOS
Additional context
Relevant logs:

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the two-server federation setup described in the issue, then trace the channel-deletion authorization path for an external user. The fix is done when a user invited from server A cannot delete a federated channel in server B, while the existing permission remains effective for permitted local users.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
authorization, distributed-systems, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.