CVE-2026-35597
CVE-2026-35597 is a medium-severity vulnerability in Vikunja with a CVSS 3.x base score of 5.9. It is not currently listed as actively exploited by CISA, and its EPSS exploit-prediction score is low. The underlying weakness is classified as CWE-307.
Key facts
- Severity: Medium (CVSS 3.x base score 5.9)
- EPSS exploit prediction: 0% (21st percentile)
- Actively exploited: Not listed in CISA KEV
- EU (EUVD) id: EUVD-2026-21422
- Weakness: CWE-307
- Affected product: Vikunja
- Published:
- Last modified:
Description
Vikunja is an open-source self-hosted task management platform. Prior to 2.3.0, the TOTP failed-attempt lockout mechanism is non-functional due to a database transaction handling bug. When a TOTP validation fails, the login handler in pkg/routes/api/v1/login.go calls HandleFailedTOTPAuth and then unconditionally rolls back. HandleFailedTOTPAuth in pkg/user/totp.go uses an in-memory counter (key-value store) to track failed attempts. When the counter reaches 10, it calls user.SetStatus(s, StatusAccountLocked) on the same database session s. Because the login handler always rolls back after a TOTP failure, the StatusAccountLocked write is undone. The in-memory counter correctly increments past 10, so the lockout code executes on every subsequent attempt, but the database write is rolled back every time. This allows unlimited brute-force attempts against TOTP codes. This vulnerability is fixed in 2.3.0.
Frequently asked questions
- What is CVE-2026-35597?
- Vikunja is an open-source self-hosted task management platform. Prior to 2.3.0, the TOTP failed-attempt lockout mechanism is non-functional due to a database transaction handling bug. When a TOTP validation fails, the login handler in pkg/routes/api/v1/login.go calls HandleFailedTOTPAuth and then unconditionally rolls back. HandleFailedTOTPAuth in pkg/user/totp.go uses an in-memory counter (key-value store) to track failed attempts. When the counter reaches 10, it calls user.SetStatus(s, StatusAccountLocked) on the same database session s. Because the login handler always rolls back after a TOTP failure, the StatusAccountLocked write is undone. The in-memory counter correctly increments past 10, so the lockout code executes on every subsequent attempt, but the database write is rolled back every time. This allows unlimited brute-force attempts against TOTP codes. This vulnerability is fixed in 2.3.0.
- How severe is CVE-2026-35597?
- CVE-2026-35597 has a CVSS 3.x base score of 5.9, rated medium severity. It is exploitable over network with high attack complexity, requires no privileges and no user interaction. Impact on confidentiality is high, integrity none, and availability none.
- Is CVE-2026-35597 being actively exploited?
- It is not currently listed in CISA's KEV catalog. Its EPSS exploit-prediction score is 0% (21st percentile), an estimate of the probability of exploitation in the next 30 days.
- What products are affected by CVE-2026-35597?
- CVE-2026-35597 affects Vikunja. See the affected-products list for the exact vulnerable versions.
- How do I fix CVE-2026-35597?
- Review the linked vendor and NVD advisories for patched versions and mitigations, then upgrade or apply the recommended workaround.
- Does CVE-2026-35597 have an EU (EUVD) identifier?
- Yes. CVE-2026-35597 is tracked in the ENISA EU Vulnerability Database (EUVD) as EUVD-2026-21422.
- When was CVE-2026-35597 published?
- CVE-2026-35597 was published on 2026-04-10 and last updated on 2026-06-17.
References
- https://github.com/go-vikunja/vikunja/commit/6ca0151d02fa0e8c7e2181ab916a28e08caaaec8
- https://github.com/go-vikunja/vikunja/pull/2576
- https://github.com/go-vikunja/vikunja/releases/tag/v2.3.0
- https://github.com/go-vikunja/vikunja/security/advisories/GHSA-fgfv-pv97-6cmj
Affected products (1)
- cpe:2.3:a:vikunja:vikunja:*:*:*:*:*:*:*:*
More vulnerabilities in Vikunja
- CVE-2026-28268 — Critical (CVSS 9.8): Vikunja is an open-source self-hosted task management platform. Versions prior to 2.1.0 have a business logic…
- CVE-2026-33334 — Critical (CVSS 9.6): Vikunja is an open-source self-hosted task management platform. Starting in version 0.21.0 and prior to version 2.2.0,…
- CVE-2026-27575 — Critical (CVSS 9.1): Vikunja is an open-source self-hosted task management platform. Prior to version 2.0.0, the application allows users to…
- CVE-2026-33336 — High (CVSS 8.8): Vikunja is an open-source self-hosted task management platform. Starting in version 0.21.0 and prior to version 2.2.0,…
- CVE-2026-35595 — High (CVSS 8.3): Vikunja is an open-source self-hosted task management platform. Prior to 2.3.0, the CanUpdate check at…
- CVE-2026-33678 — High (CVSS 8.1): Vikunja is an open-source self-hosted task management platform. Prior to version 2.2.1, `TaskAttachment.ReadOne()`…
Other CWE-307 (Improper Restriction of Excessive Authentication Attempts) vulnerabilities
- CVE-2026-6853 — Critical (CVSS 9.8): Improper restriction of excessive authentication attempts vulnerability in Başbelen Group Food Cafe Businesses…
- CVE-2026-8760 — Critical (CVSS 9.8): The Login with OTP plugin for WordPress is vulnerable to authentication bypass in all versions up to, and including,…
- CVE-2020-37228 — Critical (CVSS 9.8): iDS6 DSSPro Digital Signage System 6.2 contains a CAPTCHA security bypass vulnerability that allows attackers to bypass…
- CVE-2026-33879 — Critical (CVSS 9.8): Federated Learning and Interoperability Platform (FLIP) is an open-source platform for federated training and…
- CVE-2026-33640 — Critical (CVSS 9.8): Outline is a service that allows for collaborative documentation. Outline implements an Email OTP login flow for users…
- CVE-2026-31851 — Critical (CVSS 9.8): Nexxt Solutions Nebula 300+ firmware through version 12.01.01.37 does not implement rate limiting or account lockout…
Browse all CWE-307 (Improper Restriction of Excessive Authentication Attempts) vulnerabilities →