Skip to content

Enforce session-based connection authorization in dispatch loop#411

Merged
ravjotbrar merged 1 commit into
mainfrom
fix/authorize-connections
Jul 23, 2026
Merged

Enforce session-based connection authorization in dispatch loop#411
ravjotbrar merged 1 commit into
mainfrom
fix/authorize-connections

Conversation

@ravjotbrar

Copy link
Copy Markdown
Collaborator

Description

The dispatch loop passes ws.sessionId to handlers but never enforces ownership. Since connectionId is deterministic (host-port-dbN), a second user on a shared deployment could send actions with a guessed connectionId and piggyback on another user's authenticated GLIDE client without ever connecting themselves.

Actions targeting a connectionId are rejected unless the requesting session has previously connected to that connection via connectPending. Connection-establishing actions (connectPending, discoveryEndpointPending) bypass the check since they are required for a session to become authorized

Change Visualization

Include a screenshot/video of before and after the change.

Signed-off-by: ravjotb <ravjot.brar@improving.com>
@ravjotbrar
ravjotbrar merged commit 61f14c7 into main Jul 23, 2026
8 checks passed
ravjotbrar added a commit that referenced this pull request Jul 23, 2026
Signed-off-by: ravjotb <ravjot.brar@improving.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants