Skip to main content

EUVDEUVD-2026-21494

| CVE-2026-40103 MEDIUM
Incorrect Authorization (CWE-863)
2026-04-10 https://github.com/go-vikunja/vikunja GHSA-v479-vf79-mg83
5.4
CVSS 3.1 · NVD
View

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Impact

This vulnerability presents moderate real-world risk despite the relatively low CVSS 4.3 score. The CVSS vector indicates low attack complexity (AC:L) and network accessibility (AV:N), with unauthenticated privilege requirements (PR:L), meaning any authenticated user with update access to a project can exploit it. The integrity impact (I:L) is limited to the specific background file deletion, not arbitrary code execution or system compromise. However, the integrity impact understates the severity in practice: legitimate automation workflows using intentionally narrowly scoped tokens for read-only or specific-operation access can be silently subverted by token creators who also have project update rights. The EPSS score is not provided, but the exploit is straightforward-no complex attack chain is required. The critical signal is that a working proof-of-concept exists and the vulnerability is confirmed reproducible in the upstream repository, indicating this is a real authorization flaw, not a theoretical edge case. For organizations relying on scoped tokens for fine-grained API access control, this is a trust-model violation that warrants immediate patching despite the lower CVSS rating.

Exploit ScenarioDerived

An attacker with valid authentication creates or obtains an API token intentionally scoped to only projects.background permission (read-only background image access). The attacker then sends a DELETE request to /api/v1/projects/<target_project_id>/background with this token. Due to the method-confusion flaw in permission checking, the token is incorrectly accepted, and the project's background image file is deleted and its BackgroundFileID is cleared. The attack requires the attacker to have authentication (valid token) and prior knowledge of a project ID, but does not require the attacker to be an administrator or have high-level project permissions-only the original token creator needs to have had update rights on the target project.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Apr 10, 2026

Vikunja's scoped API token enforcement for project background routes contains a method-confusion authorization bypass allowing tokens with only projects.background permission to delete project backgrounds despite lacking the projects.background_delete permission. This enables authenticated attackers to perform unintended destructive operations on projects they have update access to, weakening the permission model for narrowly scoped API tokens used in automation and third-party integrations. The vulnerability has a vendor-released patch available and is confirmed reproducible on the affected codebase.

RemediationAI

Upgrade Vikunja to version 2.3.0 or later, which contains the upstream fix implemented in commit 6a0f39b252a81fa4b19dc56dc889183acc9225ae (merged via pull request #2584). No workarounds are available for earlier versions; the permission matching logic must be corrected to properly enforce method-specific scopes during token validation. Users unable to immediately upgrade should audit existing scoped API tokens to ensure they follow the principle of least privilege and should monitor API logs for unauthorized DELETE requests to project background endpoints. Additional details and the official advisory are available at https://github.com/go-vikunja/vikunja/security/advisories/GHSA-v479-vf79-mg83.

Affected VersionsENISA

vikunja < 2.3.0

Affected Packages

go code.vikunja.io/api fix: 2.3.0
euvd vikunja fix: 2.3.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Vikunja implements scoped API token enforcement through a permission matching system in pkg/models/api_routes.go and pkg/routes/routes.go. The DELETE request to /api/v1/projects/:project/background should require the projects.background_delete permission, while GET requests require projects.background. However, the CanDoAPIRoute() function performs fallback logic that reconstructs child permissions from path segments alone, ignoring the HTTP method. For DELETE requests to the background endpoint, this reconstruction yields background instead of background_delete, causing the permission matcher to accept any token containing projects.background without validating the HTTP method or the stored route-specific permission requirements. The affected CPE is pkg:go/code.vikunja.io_api, a Go-based project management platform. The root cause is classified under CWE-863 (Incorrect Authorization), reflecting inadequate method-aware permission checking in the token validation logic.

Know when the next one hits your stack

  • 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

NVD PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L
SUSE MEDIUM

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
Low

Lifecycle Timeline

3
CVSS changed
Oct 26, 2026 - 21:23 NVD
4.3 (MEDIUM) 5.4 (MEDIUM)
Patch released
Apr 10, 2026 - 16:00 nvd
Patch available
CVE Published
Apr 10, 2026 - 15:36 nvd
MEDIUM 4.3

DescriptionNVD

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-token authorization bypass.

Details

I verified this locally on commit c5450fb55f5192508638cbb3a6956438452a712e.

Relevant code paths:

  • pkg/models/api_routes.go
  • pkg/routes/routes.go
  • pkg/modules/background/handler/background.go

Route registration exposes separate permissions for the same path:

  • GET /api/v1/projects/:project/background -> projects.background
  • DELETE /api/v1/projects/:project/background -> projects.background_delete

At enforcement time, CanDoAPIRoute() falls back to the parent group and reconstructs the child permission from the path segments only. For the DELETE request, that becomes background, so the matcher accepts any token containing projects.background without re-checking the HTTP method or matching the stored route detail.

This matters because RemoveProjectBackground() is a real destructive operation:

  • It checks project update rights.
  • It deletes the background file if present.
  • It clears the project's BackgroundFileID.

PoC

  1. Log in as a user who can update a project that already has a background.
  2. Create an API token with only:

{"projects":["background"]}

  1. Send:

DELETE /api/v1/projects/<project_id>/background Authorization: Bearer <token>

  1. Observe that the request succeeds and the project background is removed.

For comparison:

  1. Create an API token with only:

{"projects":["background_delete"]}

  1. Repeat the same DELETE request.
  2. Observe that the request is rejected with 401 Unauthorized.

I confirmed this locally with three validations:

  1. /api/v1/routes advertises both background and background_delete.
  2. The matcher unit test proves CanDoAPIRoute() accepts DELETE for background.
  3. The webtest proves a real API token with only background successfully deletes the background.

Impact

Scoped API tokens can exceed their intended capability. A token intended for project background access can delete project backgrounds, which weakens the trust model for automation and third-party integrations that rely on narrowly scoped tokens.

The attacker needs a valid API token created by a user who has update rights on the target project, but the token itself only needs the weaker projects.background permission.

Threat Intelligence Overview

EPSS Score
0.0%
Top 93% exploitable
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Server 16.1 Affected
SUSE Linux Enterprise Server for SAP applications 16.1 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP5 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP6 Affected
openSUSE Leap 15.5 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy