# CVE-2026-35599: Vikunja algorithmic complexity DoS in repeating task handler

Source: https://junglewise.ai/threats/cve-2026-35599-vikunja-algorithmic-complexity-dos-in-repeating-task-handler  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-04-10. Updated: 2026-05-10  
License: CC BY 4.0 with a link back

CVE-2026-35599 · Severity: medium · CVSS 6.5 · Published 2026-04-10

Vikunja, an open-source to-do list application, is vulnerable to a denial-of-service attack. An authenticated user can create a specific type of repeating task that forces the server to perform billions of unnecessary calculations. This can crash the service or make it unresponsive for all users by exhausting server processing power and database connections.

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-35599 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-35599 being exploited in the wild.

**How severe is CVE-2026-35599?** Medium severity, with a CVSS score of 6.5, published 10 April 2026.

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

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

**How is CVE-2026-35599 attacked?** It is attacked over the network, in a network appliance.

**Am I affected by CVE-2026-35599?** 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.3.0 or later

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


## Technical details

The vulnerability exists in the `addRepeatIntervalToTime` function within `pkg/models/tasks.go`. The function uses an O(n) loop to calculate the next occurrence of a repeating task by incrementing the time by the `RepeatAfter` duration until it exceeds the current time. An attacker can provide a `RepeatAfter` value of 1 second and a `DueDate` from many decades ago, forcing the loop to run billions of times. This consumes significant CPU time and holds a database connection open for the duration of the request. Approximately 100 concurrent requests can exhaust the default database connection pool, leading to a complete denial of service. The issue is fixed in version 2.3.0 by replacing the loop with O(1) arithmetic.

## Affected products

- go-vikunja Vikunja <= 2.2.2

## Identifiers

- CVE-2026-35599
- GHSA-r4fg-73rc-hhh7
- GO-2026-5608

## Timeline

- 2026-04-09: disclosed
- 2026-04-10: advisory
- 2026-04-10: patched

## References

- [https://api.github.com/users/adrgs](https://api.github.com/users/adrgs)
- [https://github.com/adrgs](https://github.com/adrgs)
- [https://api.github.com/users/adrgs/gists%7B/gist_id%7D](https://api.github.com/users/adrgs/gists%7B/gist_id%7D)
- [https://api.github.com/users/adrgs/repos](https://api.github.com/users/adrgs/repos)
- [https://avatars.githubusercontent.com/u/11564377?v=4](https://avatars.githubusercontent.com/u/11564377?v=4)
- [https://api.github.com/users/adrgs/events%7B/privacy%7D](https://api.github.com/users/adrgs/events%7B/privacy%7D)

## 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)
