fix(security): V2 - properly validate WebSocket authentication in gateway middleware #12749
+9
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Security Disclosure Notice
This PR addresses a security vulnerability identified by Kolega.dev as part of our automated security remediation platform validation.
Disclosure Timeline:
We attempted to coordinate privately through NocoDB's official security reporting channel. After exceeding the published response SLA without acknowledgment, we are proceeding with public disclosure to ensure the community can protect their deployments.
Vulnerability identified and fix provided by Kolega.dev (https://kolega.dev/)
Change Summary
Fixes critical WebSocket authentication vulnerability (CWE-287) where unauthenticated users could establish WebSocket connections and access real-time data. The middleware's empty catch block previously allowed all connections to proceed regardless of authentication status.
Change type
Test/ Verification
Additional information / screenshots (optional)
Security Impact: This fix addresses a critical authentication bypass vulnerability. Previously, the
guard.canActivate()result was not being checked, allowing all WebSocket connections regardless of authentication status.Changes made:
guard.canActivate()return valuenext()if authentication succeedsFile modified:
packages/nocodb/src/gateways/socket.gateway.ts