Vikunja 2.3.0 before 2.7.0 WebSocket Authentication Ignores Session Revocation
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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-111917
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 01:25 UTC · Revision 1
Source evidence
Vikunja 2.3.0 before 2.7.0 WebSocket Authentication Ignores Session Revocation
core-osv · Original sourcePublished 17 Oct 2026, 18:46 UTC
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.
osv:CVE-2026-111917
Complete source record
{
"id": "e7a3a0fa5d996426a7c611ad78244fe8eb7265ac4d3aa97a4e5b8f2ef1f4dac5",
"url": "https://osv.dev/vulnerability/CVE-2026-111917",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Vikunja 2.3.0 before 2.7.0 WebSocket Authentication Ignores Session Revocation",
"summary": "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.",
"evidence": "osv:CVE-2026-111917",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-111917",
"aliases": [
"CVE-2026-111917",
"GHSA-4hv6-xc92-j86g",
"GO-2026-6715"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/go-vikunja/vikunja",
"type": "GIT",
"events": [
{
"introduced": "28b537837f9808dc106c9058b5829c65759fddf2"
},
{
"fixed": "a16be96aa454671fdf213b0fbe411dd38a098418"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "2.3.0"
},
{
"fixed": "2.7.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"introduced": "2.3.0"
},
{
"fixed": "2.7.0"
}
],
"source": "DESCRIPTION"
}
]
}
}
],
"versions": [
"v2.6.0",
"v2.5.0",
"v2.4.0",
"v2.3.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-111917.json"
}
}
],
"modified": "2026-10-28T02:30:24.931534736Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/111xxx/CVE-2026-111917.json",
"https://github.com/go-vikunja/vikunja/security/advisories/GHSA-4hv6-xc92-j86g",
"https://nvd.nist.gov/vuln/detail/CVE-2026-111917",
"https://www.vulncheck.com/advisories/vikunja-2.3.0-before-2.7.0-websocket-authentication-ignores-session-revocation"
],
"provider_metadata": {
"cwe_ids": [
"CWE-613"
],
"cna_assigner": "VulnCheck",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/111xxx/CVE-2026-111917.json"
}
},
"related_cves": [
{
"value": "CVE-2026-111917",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 491620,
"published_at": "2026-10-17T18:46:32.545+00:00"
}