Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain collaborator access to project
-
DeliveryCreate webhook pointing to attacker endpoint
-
ExploitAccess revoked via project-user removal or downgrade
-
ExecutionWebhook survives all revocation paths
-
ImpactContinuously receive task titles and descriptions post-revocation
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V7 - Session Management Session expiration enforcement
|
| Exploitation Conditions | Exploitation requires the attacker to have previously been an authenticated collaborator on a Vikunja project (version 0.22.0 through 2.6.0) and to have created a webhook on that project while access was still valid. The webhook (and link-share) rows are not deleted by the revocation-cleanup routine, which is wired only to the TeamMember.Delete path; access revoked via direct project-user removal (ProjectUser.Delete), permission downgrade (ProjectUser.Update), or team-project removal (TeamProject.Delete) leaves the live feed intact. Limiting factors: the attacker must have had prior legitimate access, must have set up a webhook beforehand, and the impact is read-only disclosure of task titles/descriptions via the attacker-controlled webhook endpoint - there is no path to modify or destroy data. |
| Impact | This is a genuine but moderate-priority confidentiality issue, not an overstated high-CVSS finding. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H) correctly captures a network-reachable, low-complexity flaw whose impact is confidentiality-only (VC:H, VI:N, VA:N), and the PR:L metric accurately reflects that the attacker must have been a legitimately authenticated collaborator who created a webhook before losing access - this is not an anonymous internet-wide exploit. The GHSA advisory describes a working PoC reproduction harness (built on the vikunja/vikunja:2.6.0 Docker image), so a practical exploit technique is public, but there is no CISA KEV listing and no EPSS score in the input, so there is no evidence of widespread or automated real-world exploitation; realistically this is an insider/former-collaborator abuse case rather than mass exploitation. The real-world ceiling is bounded by prerequisites (prior access + a pre-existing webhook) and by product footprint, which is modest for a self-hosted open-source tool. Note a documentation conflict: the CVE description states the fix is in 2.7.0, while the structured package feed reports 'fixed in: None' and vulnerable through 2.6.0 - verify the actual fixed release with the vendor. |
| Exploit ScenarioDerived | A user is added as a collaborator to a Vikunja project and, while they have access, creates a webhook pointing at a server they control. When their access is later revoked through the ordinary 'remove user from project' path (or a permission downgrade), the webhook is not deleted, so their endpoint keeps receiving task titles and descriptions - including content created after revocation. A public PoC harness demonstrating this live feed is described in the GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 17, 2026
Vikunja 0.22.0 through 2.6.0 fails to revoke webhook and link-share channels when a collaborator's project access is removed, so a former collaborator who created a webhook while still authorized continues to receive task titles and descriptions - including content created after revocation - as an automatic live feed. The cleanup routine that deletes derived rows (assignees, subscriptions) does not include webhooks or link shares, and it is only wired to the team-member removal path, leaving direct project-user removal, permission downgrade, and team-project removal without any cleanup. Per the assessed vector (AV:N/AC:L/PR:L/UI:N/C:H), the attacker must have been a legitimate authenticated collaborator who previously registered a webhook, gains read-only disclosure only, and no public exploit code has been identified at time of analysis.
RemediationAI
Upgrade to Vikunja 2.7.0 or later, which the vendor advisory (GHSA-hjx8-qv73-f7cm) designates as the fixed release; the Go module metadata does not record a fixed version, so verify the changelog after upgrading. Organizations that cannot upgrade immediately should audit and manually delete webhooks and link shares owned by or created for any user or team removed from a project - including users whose permissions were downgraded rather than removed and teams unlinked from projects, since those paths never trigger the cleanup routine. Because the vulnerability is triggered by the departing user's own webhook, restrict webhook and link-share creation to trusted project owners (side effect: reduced self-service automation for regular collaborators), and review destination URLs of existing webhooks for endpoints controlled by former collaborators. Rotating or blocking outbound deliveries from Vikunja to untrusted hosts at the network egress layer provides a compensating control, with the trade-off that legitimate integrations to those hosts must be allowlisted. Discarding rather than merely deleting former collaborators' accounts, and re-creating them if they return, limits residue on paths the automatic cleanup does not cover. Consult the vendor advisory and the VulnCheck advisory at vulncheck.com for further details and any vendor-provided cleanup guidance.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Vikunja is a Go-based task/project management application (module go/code.vikunja.io/api). The root cause is CWE-613, Insufficient Session Expiration - in this case stale authorization artifacts outlive the grant that created them. The codebase already implements a revocation-cleanup helper, cleanupTaskMembersAfterTeamRemoval (pkg/models/teams.go), which re-evaluates project.CanRead for the departing member and deletes TaskAssignee and Subscription rows for project/task entities they can no longer read. That helper's row set omits webhooks and link_shares, the only two row types that carry a persistent live channel into project data, and its sole caller is the TeamMember.Delete listener (pkg/models/listeners.go). The other three revocation paths - ProjectUser.Delete (removing a user directly from a project), ProjectUser.Update (the permission-downgrade path), and TeamProject.Delete - dispatch no cleanup event at all. Consequently, webhook delivery continues to serialize task titles and descriptions to the ex-collaborator's endpoint, including tasks created after access was revoked. The advisory notes the PoC was validated against the released vikunja/vikunja:2.6.0 Docker image with per-run negative controls, and that the module metadata lists all 0.22.0-2.6.0 releases as vulnerable with no fixed version recorded in the package data.
Know when Vikunja gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
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
Attacker must be a prior low-privilege authenticated collaborator (PR:L) acting over the network (AV:N) with no extra complexity; impact is disclosure-only (C:H, I:N, A:N) within the same authorization scope (S:U).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Vikunja 0.22.0 before 2.7.0 contains an improper access revocation vulnerability that allows removed collaborators to keep receiving project data through webhooks they created. Former collaborators keep receiving task titles and descriptions through their webhook, including content created after their access was revoked.
Technical POC Analysis
CWE-613 (Insufficient Session Expiration), with the advisory also tagging CWE-863 (Incorrect Authorization).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Vikunja versions 0.22.0 through 2.6.0 can continue delivering task titles and descriptions to former collaborators through webhooks and link shares that are not revoked when project access is removed. This creates an ongoing confidentiality gap for organizations using Vikunja for sensitive project tracking, especially where external collaborators or contractor offboarding is common. Leadership should treat this as a process and data-governance risk requiring immediate manual cleanup until a vendor fix is available.
No vendor-released patch identified at time of analysis. Interim mitigations include manually auditing and deleting all webhooks and link shares associated with removed or downgraded collaborators; disabling webhook and link-share features globally where not business-critical; restricting creation to trusted roles; monitoring outbound webhook traffic and blocking unapproved destinations; and performing manual cleanup after every project-user removal, permission downgrade, and team-project removal.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Weak password policy in Vikunja task management before 2.0.0 allows users to set trivially guessable passwords. PoC avai
Stored cross-site scripting (XSS) in Vikunja prior to version 2.0.0 allows authenticated attackers to steal authenticati
Vikunja before version 2.0.0 contains a path traversal vulnerability in its backup restoration function that fails to va
Vikunja is an open-source self-hosted task management platform. [CVSS 6.1 MEDIUM]
Business logic vulnerability in Vikunja task management platform before 2.1.0 allows incomplete resource cleanup, potent
Cross-tenant information disclosure in the self-hosted task manager Vikunja (0.24.0 through 2.3.0) lets a holder of any
Instance-wide data breach in Vikunja before 2.2.1 lets remote attackers exfiltrate and destroy every file attachment acr
Vikunja instances before 2.6.0 expose CalDAV BasicAuth endpoints (/dav, /.well-known, and /feeds) that are not covered b
Vikunja versions before 2.6.0 ship authentication endpoints under /api/v2 (login, register, password-reset, and OAuth to
Vikunja prior to 2.6.0 leaks the secret hash that backs a project's link shares through its single-share read endpoint,
Principal type confusion in Vikunja (versions 0.22.0-2.3.0) allows an authenticated low-privilege attacker to fully cont
Privilege escalation in Vikunja 2.3.0 allows a user who holds a narrowly scoped API token (permissions {"oauth":["author
EUVD-2026-103287
GHSA-276j-w3vx-r5jh
NVD
CVE.org
VulDB
Exploit-DB