Vikunja WebSocket Authentication Ignores Session Revocation
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-613.
Summary
Vikunja from 2.3.0 before 2.7.0 does not validate sessions for WebSocket connections, so revoked sessions keep access. The authentication handler never checks the JWT sid claim against the sessions table (CWE-613). An attacker holding a stolen access token can open or keep connections to the WebSocket endpoint after the session is deleted or TOTP is enrolled, and keep receiving the victim's notifications, including comment, task and project content. The attack requires low privileges (PR:L) in addition to the stolen token.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
Description from the CNA
Vikunja 2.3.0 before 2.7.0 contains an improper session validation vulnerability that allows attackers to keep WebSocket access after revocation because handleAuth never checks the JWT sid claim against the sessions table. Attackers holding a stolen access token can open or maintain connections to /api/v2/ws after session deletion or TOTP enrollment, continuing to receive the victim's notification.created pushes, including comment, task and project content.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| go-vikunja | vikunja | 2.3.0 to before 2.7.0 | 2.7.0 | Patch available | CNA |
- vikunja Vendorgo-vikunja Affected 2.3.0 to before 2.7.0 Fixed in 2.7.0 Patch available CNA
CPE names Threatist (inferred) · 1
Inferred from how NVD named this product before; not given by a source.
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:vikunja:vikunja:*:*:*:*:*:*:*:* | — | — | go-vikunja |
- cpe:2.3:a:vikunja:vikunja:*:*:*:*:*:*:*:* Versions — — ·go-vikunja
Remediation
Upgrade go-vikunja vikunja to 2.7.0. The sources list no fixed version for other branches.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
- Fix · CNA vikunja (go-vikunja) Fixed in 2.7.0
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
go-vikunja vikunja 2.7.0
5 records Highest priority Priority HIGH 1 HIGH, 3 MEDIUM, 1 LOW
Other records, highest priority first
- TI-2026-76128 Permissive CORS policy trusting localhost origins in VikunjaPriority HIGH 67
- TI-2026-76125 Improper access revocation in Vikunja webhooks exposes project dataPriority MEDIUM 64
- TI-2026-76127 Incorrect authorization in Vikunja link share deletionPriority MEDIUM 57
Timeline
- 2026-10-18 Threatist record created from CVE-2026-111917
- 2026-10-18 Alias added: GHSA-355w-rx9g-pww7
- 2026-10-18 Priority changed: MEDIUM → LOW
- 2026-10-19 CISA SSVC decision points changed
- 2026-10-19 Priority changed: LOW → MEDIUM
References
More go-vikunja vulnerabilities
- TI-2026-40929 Authorization bypass in go-vikunja Vikunja CVSS 4.0CRITICAL 9.3
- TI-2026-21967 Vijkunja has Weak Password Policy Combined with Persistent Sessions After Password Change CVSS 3.1CRITICAL 9.1
- TI-2026-62115 Vikunja before 2.6.0 Privilege Escalation via Link Share Hash CVSS 4.0HIGH 8.7
- TI-2026-62108 Vikunja before 2.6.0 Authentication Bypass via CalDAV BasicAuth CVSS 4.0HIGH 8.7
- TI-2026-62107 Vikunja before 2.6.0 Authentication Bypass via Unthrottled API CVSS 4.0HIGH 8.7
- TI-2026-26971 Vikunja ahs a TOTP Two-Factor Authentication Bypass via OIDC Login Path CVSS 3.1CRITICAL 9.1
Sources
- CVE-2026-111917 · CVE Program
- CVE-2026-111917 · NVD
- FIRST EPSS
- GHSA-355w-rx9g-pww7 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences