Code.Vikunja.Io Api vulnerabilities

32 known vulnerabilities affecting code.vikunja.io/api.

Total CVEs
32
CISA KEV
0
Public exploits
0
Exploited in wild
0
Severity breakdown
CRITICAL2HIGH9MEDIUM21

Vulnerabilities

Page 1 of 2
CVE-2026-35595HIGH≥ 0, < 2.3.02026-04-10
CVE-2026-35595 [HIGH] CWE-269 Vikunja vulnerable to Privilege Escalation via Project Reparenting Vikunja vulnerable to Privilege Escalation via Project Reparenting ## Summary A user with Write-level access to a project can escalate their permissions to Admin by moving the project under a project they own. After reparenting, the recursive permission CTE resolves ownership of the new parent as Admin on the moved project. The attacker can then delete the project, manage shares, and remove other u
ghsa
CVE-2026-34727HIGH≥ 0, < 2.3.02026-04-10
CVE-2026-34727 [HIGH] CWE-287 Vikunja has TOTP Two-Factor Authentication Bypass via OIDC Login Path Vikunja has TOTP Two-Factor Authentication Bypass via OIDC Login Path ## Summary The OIDC callback handler issues a full JWT token without checking whether the matched user has TOTP two-factor authentication enabled. When a local user with TOTP enrolled is matched via the OIDC email fallback mechanism, the second factor is completely skipped. ## Details The OIDC callback at `pkg/modules/auth/o
ghsa
CVE-2026-35601MEDIUM≥ 0, < 2.3.02026-04-10
CVE-2026-35601 [MEDIUM] CWE-93 Vikunja has iCalendar Property Injection via CRLF in CalDAV Task Output Vikunja has iCalendar Property Injection via CRLF in CalDAV Task Output ## Summary The CalDAV output generator builds iCalendar VTODO entries via raw string concatenation without applying RFC 5545 TEXT value escaping. User-controlled task titles containing CRLF characters break the iCalendar property boundary, allowing injection of arbitrary iCalendar properties such as `ATTACH`, `VALARM`, or
ghsa
CVE-2026-35599MEDIUM≥ 0, < 2.3.02026-04-10
CVE-2026-35599 [MEDIUM] CWE-407 Vikunja has Algorithmic Complexity DoS in Repeating Task Handler Vikunja has Algorithmic Complexity DoS in Repeating Task Handler ## Summary The `addRepeatIntervalToTime` function uses an O(n) loop that advances a date by the task's `RepeatAfter` duration until it exceeds the current time. By creating a repeating task with a 1-second interval and a due date far in the past, an attacker triggers billions of loop iterations, consuming CPU and holding a database co
ghsa
CVE-2026-35597MEDIUM≥ 0, < 2.3.02026-04-10
CVE-2026-35597 [MEDIUM] CWE-307 Vikunja Vulnerable to TOTP Brute-Force Due to Non-Functional Account Lockout Vikunja Vulnerable to TOTP Brute-Force Due to Non-Functional Account Lockout ## Summary The TOTP failed-attempt lockout mechanism is non-functional due to a database transaction handling bug. The account lock is written to the same database session that the login handler always rolls back on TOTP failure, so the lockout is triggered but never persisted. This allows unlimited brute-force
ghsa
CVE-2026-40103MEDIUM≥ 0, < 2.3.02026-04-10
CVE-2026-40103 [MEDIUM] CWE-836 Vikunja: Scoped API tokens with projects.background permission can delete project backgrounds Vikunja: Scoped API tokens with projects.background permission can delete project backgrounds ### Summary Vikunja's scoped API token enforcement for custom project background routes is method-confused. A token with only `projects.background` can successfully delete a project background, while a token with only `projects.background_delete` is rejected. This is a scoped-
ghsa
CVE-2026-35602MEDIUM≥ 0, < 2.3.02026-04-10
CVE-2026-35602 [MEDIUM] CWE-770 Vikunja has File Size Limit Bypass via Vikunja Import Vikunja has File Size Limit Bypass via Vikunja Import ## Summary The Vikunja file import endpoint uses the attacker-controlled `Size` field from the JSON metadata inside the import zip instead of the actual decompressed file content length for the file size enforcement check. By setting `Size` to 0 in the JSON while including large compressed file entries in the zip, an attacker bypasses the configured maximu
ghsa
CVE-2026-35596MEDIUM≥ 0, < 2.3.02026-04-10
CVE-2026-35596 [MEDIUM] CWE-863 Vikunja has Broken Access Control on Label Read via SQL Operator Precedence Bug Vikunja has Broken Access Control on Label Read via SQL Operator Precedence Bug ## Summary The `hasAccessToLabel` function contains a SQL operator precedence bug that allows any authenticated user to read any label that has at least one task association, regardless of project access. Label titles, descriptions, colors, and creator information are exposed. ## Details The access cont
ghsa
CVE-2026-35594MEDIUM≥ 0, < 2.3.02026-04-10
CVE-2026-35594 [MEDIUM] CWE-613 Vikunja: Link Share JWT tokens remain valid for 72 hours after share deletion or permission downgrade Vikunja: Link Share JWT tokens remain valid for 72 hours after share deletion or permission downgrade ## Title Link Share JWT tokens remain valid for 72 hours after share deletion or permission downgrade ## Description Vikunja's link share authentication constructs authorization objects entirely from JWT claims without any server-side database validation. When
ghsa
CVE-2026-35600MEDIUM≥ 0, < 2.3.02026-04-10
CVE-2026-35600 [MEDIUM] CWE-79 Vikunja has HTML Injection via Task Titles in Overdue Email Notifications Vikunja has HTML Injection via Task Titles in Overdue Email Notifications ## Summary Task titles are embedded directly into Markdown link syntax in overdue email notifications without escaping Markdown special characters. When rendered by goldmark and sanitized by bluemonday (which allows `` and `` tags), injected Markdown constructs produce phishing links and tracking pixels in legitimate
ghsa
CVE-2026-35598MEDIUM≥ 0, < 2.3.02026-04-10
CVE-2026-35598 [MEDIUM] CWE-862 Vikunja Missing Authorization on CalDAV Task Read Vikunja Missing Authorization on CalDAV Task Read ## Summary The CalDAV `GetResource` and `GetResourcesByList` methods fetch tasks by UID from the database without verifying that the authenticated user has access to the task's project. Any authenticated CalDAV user who knows (or guesses) a task UID can read the full task data from any project on the instance. ## Details `GetTasksByUIDs` at `pkg/models/tasks.go:
ghsa
CVE-2026-33680HIGH≥ 0, < 2.2.22026-03-25
CVE-2026-33680 [HIGH] CWE-285 Vikjuna: Link Share Hash Disclosure via ReadAll Endpoint Enables Permission Escalation Vikjuna: Link Share Hash Disclosure via ReadAll Endpoint Enables Permission Escalation ## Summary The `LinkSharing.ReadAll()` method allows link share authenticated users to list all link shares for a project, including their secret hashes. While `LinkSharing.CanRead()` correctly blocks link share users from reading individual shares via `ReadOne`, the `ReadAllWeb` handler bypas
ghsaosv
CVE-2026-33668HIGH≥ 0.18.0, < 2.2.12026-03-25
CVE-2026-33668 [HIGH] CWE-285 Vikunja Allows Disabled/Locked User Accounts to Authenticate via API Tokens, CalDAV, and OpenID Connect Vikunja Allows Disabled/Locked User Accounts to Authenticate via API Tokens, CalDAV, and OpenID Connect ## Summary When a user account is disabled or locked, the status check is only enforced on the local login and JWT token refresh paths. Three other authentication paths — API tokens, CalDAV basic auth, and OpenID Connect — do not verify user status, allowing d
ghsaosv
CVE-2026-33678HIGH≥ 0, < 2.2.12026-03-25
CVE-2026-33678 [HIGH] CWE-639 Vikjuna: IDOR in Task Attachment ReadOne Allows Cross-Project File Access and Deletion Vikjuna: IDOR in Task Attachment ReadOne Allows Cross-Project File Access and Deletion ## Summary `TaskAttachment.ReadOne()` queries attachments by ID only (`WHERE id = ?`), ignoring the task ID from the URL path. The permission check in `CanRead()` validates access to the task specified in the URL, but `ReadOne()` loads a different attachment that may belong to a task in anothe
ghsaosv
CVE-2026-33677MEDIUM≥ 0, < 2.2.12026-03-25
CVE-2026-33677 [MEDIUM] CWE-200 Vikjuna: Webhook BasicAuth Credentials Exposed to Read-Only Project Collaborators via API Vikjuna: Webhook BasicAuth Credentials Exposed to Read-Only Project Collaborators via API ## Summary The `GET /api/v1/projects/:project/webhooks` endpoint returns webhook BasicAuth credentials (`basic_auth_user` and `basic_auth_password`) in plaintext to any user with read access to the project. While the existing code correctly masks the HMAC `secret` field, the BasicAuth
ghsaosv
CVE-2026-33675MEDIUM≥ 0, < 2.2.12026-03-25
CVE-2026-33675 [MEDIUM] CWE-918 Vikunja has SSRF via Todoist/Trello Migration File Attachment URLs that Allows Reading Internal Network Resources Vikunja has SSRF via Todoist/Trello Migration File Attachment URLs that Allows Reading Internal Network Resources ## Summary The migration helper functions `DownloadFile` and `DownloadFileWithHeaders` in `pkg/modules/migration/helpers.go` make arbitrary HTTP GET requests without any SSRF protection. When a user triggers a Todoist or Trello migration,
ghsaosv
CVE-2026-33700MEDIUM≥ 0, < 2.2.12026-03-25
CVE-2026-33700 [MEDIUM] CWE-639 Vikunja has a Link Share Delete IDOR — Missing Project Ownership Check Allows Cross-Project Link Share Deletion Vikunja has a Link Share Delete IDOR — Missing Project Ownership Check Allows Cross-Project Link Share Deletion ## Summary The `DELETE /api/v1/projects/:project/shares/:share` endpoint does not verify that the link share belongs to the project specified in the URL. An attacker with admin access to any project can delete link shares from other projects
ghsaosv
CVE-2026-33676MEDIUM≥ 0, < 2.2.12026-03-25
CVE-2026-33676 [MEDIUM] CWE-863 Vikunja has Cross-Project Information Disclosure via Task Relations — Missing Authorization Check on Related Task Read Vikunja has Cross-Project Information Disclosure via Task Relations — Missing Authorization Check on Related Task Read ## Summary When the Vikunja API returns tasks, it populates the `related_tasks` field with full task objects for all related tasks without checking whether the requesting user has read permission on those tasks' projects. An aut
ghsaosv
CVE-2026-33679MEDIUM≥ 0, < 2.2.12026-03-25
CVE-2026-33679 [MEDIUM] CWE-918 Vikjuna Bypasses Webhook SSRF Protections During OpenID Connect Avatar Download Vikjuna Bypasses Webhook SSRF Protections During OpenID Connect Avatar Download ## Summary The `DownloadImage` function in `pkg/utils/avatar.go` uses a bare `http.Client{}` with no SSRF protection when downloading user avatar images from the OpenID Connect `picture` claim URL. An attacker who controls their OIDC profile picture URL can force the Vikunja server to make HTTP GET reques
ghsaosv
CVE-2026-33316HIGH≥ 0, ≤ 2.1.02026-03-20
CVE-2026-33316 [HIGH] CWE-284 Vikunja’s Improper Access Control Enables Bypass of Administrator-Imposed Account Disablement Vikunja’s Improper Access Control Enables Bypass of Administrator-Imposed Account Disablement ### Summary A flaw in Vikunja’s password reset logic allows disabled users to regain access to their accounts. The `ResetPassword()` function sets the user’s status to `StatusActive` after a successful password reset without verifying whether the account was previously disabled.
ghsaosv