# CVE-2026-91973: Vikunja authentication bypass in CalDAV BasicAuth endpoints

Source: https://junglewise.ai/threats/cve-2026-91973-vikunja-authentication-bypass-in-caldav-basicauth-endpoints  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-09-15. Updated: 2026-09-26  
License: CC BY 4.0 with a link back

CVE-2026-91973 · Severity: high · CVSS 7.5 · Published 2026-09-15

Vikunja is an open-source task management and project collaboration platform. A vulnerability allows attackers to bypass the password brute-force protection that normally limits login attempts to 10 per minute. By attacking CalDAV, feeds, and well-known endpoints instead of the regular login page, attackers can make unlimited guesses at user passwords without rate limiting, potentially compromising any password-only accounts on the system.

Technologies: [code.vikunja.io/api (Go)](https://junglewise.ai/threats/technologies/code-vikunja-io-api), [Vikunja](https://junglewise.ai/threats/technologies/vikunja). Vendors: [Go](https://junglewise.ai/threats/vendors/go), [Vikunja](https://junglewise.ai/threats/vendors/vikunja).

## Quick answers

**Is CVE-2026-91973 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-91973 being exploited in the wild.

**How severe is CVE-2026-91973?** High severity, with a CVSS score of 7.5, published 15 September 2026.

**Which products and versions are affected?** code.vikunja.io/api (Go) <= 2.5.0, SEMVER:introduced=0, SEMVER:introduced=0,fixed=2.6.0; Vikunja before 2.6.0.

**Is there a fix for CVE-2026-91973?** Yes. code.vikunja.io/api (Go): upgrade to 2.6.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-91973 attacked?** It is attacked over the network.

**Am I affected by CVE-2026-91973?** Check whether you run code.vikunja.io/api (Go) or Vikunja at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- code.vikunja.io/api (Go): upgrade to 2.6.0 or later

  ```sh
  go get code.vikunja.io/api@v2.6.0
  ```


## Technical details

The vulnerability is a failure to apply rate limiting (CWE-307) on CalDAV and feeds BasicAuth endpoints. The /dav, /.well-known, and /feeds routes are registered in pkg/routes/routes.go with only BasicAuth middleware and no rate limiter, while the standard /login endpoint enforces an unconditional 10 requests/minute/IP floor. CalDAV BasicAuth in pkg/routes/caldav/auth.go accepts plain account passwords and falls through to user.CheckUserCredentials, making it suitable for password guessing. Attackers can issue unbounded credential-guessing requests against these endpoints without triggering 429 (too many requests) responses, entirely bypassing the instance's anti-brute-force protection. TOTP-enabled and bot accounts are correctly refused, so only password-only accounts are at risk. The fix is to apply the same pre-auth rate-limit floor to the vulnerable endpoints.

## Affected products

- Vikunja Vikunja before 2.6.0

## Identifiers

- CVE-2026-91973
- GHSA-m469-88xx-8rx2
- GO-2026-6737

## Timeline

- 2026-09-15: disclosed: CVE-2026-91973 published

## References

- [https://github.com/go-vikunja/vikunja/security/advisories/GHSA-m469-88xx-8rx2](https://github.com/go-vikunja/vikunja/security/advisories/GHSA-m469-88xx-8rx2)
- [https://www.vulncheck.com/advisories/vikunja-before-2.6.0-authentication-bypass-via-caldav-basicauth](https://www.vulncheck.com/advisories/vikunja-before-2.6.0-authentication-bypass-via-caldav-basicauth)

## Related threats

- [Vikunja denial of service via pagination bypass in API v1](https://junglewise.ai/threats/cve-2026-123531-vikunja-from-1-0-0-before-2-7-1-contains-an-uncontrolled)
- [Vikunja missing authentication in TOTP enrollment](https://junglewise.ai/threats/cve-2026-123530-vikunja-before-2-7-1-contains-a-missing-authentication)
- [Vikunja stored CSS injection in rich-text table cells](https://junglewise.ai/threats/cve-2026-123529-vikunja-before-2-7-1-contains-a-stored-css-injection)
- [Vikunja insufficient session expiration in HTTP token middleware](https://junglewise.ai/threats/cve-2026-123528-vikunja-before-2-7-1-contains-an-insufficient-session-expiration)
- [Vikunja API token authorization bypass in v1/v2 collision](https://junglewise.ai/threats/cve-2026-123527-vikunja-from-2-4-0-before-2-7-1-contains-an-authorization-bypass)
