CVE-2026-35597
Medium · 5.9CVSS
5.9
EPSS
0.5%
Published
Apr 10, 2026
CISA due date
—
The record
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.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-89174 Smart Video Intercom System developed by Kingdom Communication Associated has a Missing… CWE-307
- CVE-2026-88770 A flaw was found in the Device Authorization Grant flow of Keycloak, an identity and… CWE-307
- CVE-2026-78490 Dell SCG 5.0 Appliance versions prior to 5.36.00.16 and Dell SCG 5.0 Application versions… CWE-307
- CVE-2026-86729 WWBN AVideo through commit e01e41ecc (no patched version available) exposes… CWE-307
- CVE-2026-20514 In Audio HAL, there is a possible information disclosure due to a missing permission… CWE-307
- CVE-2026-20512 In Audio HAL, there is a possible escalation of privilege due to improper input… CWE-307
- CVE-2026-86186 AVideo API fails to enforce rate limits when clients send a bot User-Agent header… CWE-307
- CVE-2026-85237 A vulnerability in MISP's email-based one-time password (OTP) authentication flow allowed… CWE-307