Api: Vikunja: WebSocket authentication ignores server-side session state, so revoked sessions keep receiving live pushes
Description
Vikunja versions 2.3.0 through 2.6.0 have a vulnerability where WebSocket authentication ignores server-side session revocation. Although sessions can be revoked via the REST API, the WebSocket endpoint does not validate the session ID claim against active sessions. This allows revoked tokens to continue receiving live push notifications indefinitely. The issue affects session revocation mechanisms including TOTP enrollment, undermining user expectations of session invalidation.
CVSS v3.1
Score 6.5medium
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
Vikunja introduced server-side session revocation in v2.6.0, allowing sessions to be deleted via REST API calls. User JWTs include a session ID claim ('sid') intended to tie tokens to server-side sessions. However, the WebSocket endpoint authenticates tokens by verifying only the signature and token type, without checking the session ID against the sessions table. Consequently, WebSocket connections authenticated before session revocation remain active and continue receiving live push notifications, and new WebSocket connections can be established using revoked tokens. This bypasses session revocation controls on the WebSocket channel, allowing continued data push to revoked sessions indefinitely until the client disconnects.
Potential Impact
The vulnerability allows an attacker with a stolen or leaked access token to maintain a persistent WebSocket connection that continues to receive live notifications and data pushes even after the session has been revoked. This undermines session revocation controls, including those triggered by TOTP enrollment, potentially exposing sensitive notification content indefinitely. The impact is limited to confidentiality as the attacker can receive data but cannot modify it. The REST API access tokens expire after 10 minutes, but the WebSocket connection persists without time bound.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. The fix involves validating the session ID claim against the sessions table during WebSocket authentication and re-validating or dropping WebSocket connections when their sessions are revoked. Until a patch is available, users should be aware that session revocation does not affect active WebSocket connections.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-4hv6-xc92-j86g
- Osv Schema Version
- 1.4.0
- Ecosystems
- ["Go"]
- Database Specific Severity
- MODERATE
- Cvss Version
- 3.1
Threat ID: 6ac96e3f2cdf04f65689a549
Added to database: 10/09/2026, 22:44:15 UTC
Last enriched: 10/09/2026, 22:45:45 UTC
Last updated: 10/09/2026, 22:45:45 UTC
Views: 3
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.