CVE-2026-35597: CWE-307: Improper Restriction of Excessive Authentication Attempts in go-vikunja vikunja
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.
AI Analysis
Technical Summary
The vulnerability in go-vikunja vikunja (CVE-2026-35597) arises from improper restriction of excessive authentication attempts (CWE-307). The TOTP failed-attempt lockout mechanism relies on a database write to lock accounts after 10 failed TOTP attempts. However, due to a bug in transaction handling, the login handler always rolls back the database transaction after a failed TOTP validation, undoing the account lock status update. Although an in-memory counter tracks failed attempts and triggers the lockout code, the rollback prevents the lockout from persisting, allowing unlimited brute-force attempts against TOTP codes. This flaw is resolved in version 2.3.0.
Potential Impact
Attackers can perform unlimited brute-force attempts against TOTP codes because the account lockout mechanism does not persist due to transaction rollbacks. This undermines the two-factor authentication protection, potentially allowing unauthorized access if the attacker can guess or brute-force the TOTP code. The vulnerability affects confidentiality by enabling bypass of TOTP-based authentication lockout. There is no indication of impact on integrity or availability.
Mitigation Recommendations
Upgrade to Vikunja version 2.3.0 or later, where this issue is fixed. Patch status is not explicitly stated in the vendor advisory, but the description confirms the vulnerability is resolved in version 2.3.0. Until upgrading, consider additional protective measures such as external rate limiting on authentication attempts if feasible.
CVE-2026-35597: CWE-307: Improper Restriction of Excessive Authentication Attempts in go-vikunja vikunja
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.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in go-vikunja vikunja (CVE-2026-35597) arises from improper restriction of excessive authentication attempts (CWE-307). The TOTP failed-attempt lockout mechanism relies on a database write to lock accounts after 10 failed TOTP attempts. However, due to a bug in transaction handling, the login handler always rolls back the database transaction after a failed TOTP validation, undoing the account lock status update. Although an in-memory counter tracks failed attempts and triggers the lockout code, the rollback prevents the lockout from persisting, allowing unlimited brute-force attempts against TOTP codes. This flaw is resolved in version 2.3.0.
Potential Impact
Attackers can perform unlimited brute-force attempts against TOTP codes because the account lockout mechanism does not persist due to transaction rollbacks. This undermines the two-factor authentication protection, potentially allowing unauthorized access if the attacker can guess or brute-force the TOTP code. The vulnerability affects confidentiality by enabling bypass of TOTP-based authentication lockout. There is no indication of impact on integrity or availability.
Mitigation Recommendations
Upgrade to Vikunja version 2.3.0 or later, where this issue is fixed. Patch status is not explicitly stated in the vendor advisory, but the description confirms the vulnerability is resolved in version 2.3.0. Until upgrading, consider additional protective measures such as external rate limiting on authentication attempts if feasible.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-04-03T21:25:12.162Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 69d9d9751cc7ad14da3f8729
Added to database: 4/11/2026, 5:17:41 AM
Last enriched: 4/11/2026, 5:19:27 AM
Last updated: 4/11/2026, 1:44:02 PM
Views: 5
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.