CVE-2026-29794
Received Received - Intake
Rate Limit Bypass via IP Spoofing in Vikunja Task Manager

Publication date: 2026-03-20

Last updated on: 2026-03-24

Assigner: GitHub, Inc.

Description
Vikunja is an open-source self-hosted task management platform. Starting in version 0.8 and prior to version 2.2.0, unauthenticated users are able to bypass the application's built-in rate-limits by spoofing the `X-Forwarded-For` or `X-Real-IP` headers due to the rate-limit relying on the value of `(echo.Context).RealIP`. Unauthenticated users can abuse endpoints available to them for different potential impacts. The immediate concern would be brute-forcing usernames or specific accounts' passwords. This bypass allows unlimited requests against unauthenticated endpoints. Version 2.2.0 patches the issue.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-03-20
Last Modified
2026-03-24
Generated
2026-05-07
AI Q&A
2026-03-20
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
vikunja vikunja From 0.8 (inc) to 2.2.0 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-807 The product uses a protection mechanism that relies on the existence or values of an input, but the input can be modified by an untrusted actor in a way that bypasses the protection mechanism.
Attack-Flow Graph
AI Powered Q&A
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:

I don't know


Can you explain this vulnerability to me?

[{'type': 'paragraph', 'content': "This vulnerability affects Vikunja, an open-source self-hosted task management platform, in versions starting from 0.8 up to but not including 2.2.0. It allows unauthenticated users to bypass the application's built-in rate limits by spoofing the HTTP headers `X-Forwarded-For` or `X-Real-IP`. The rate-limiting mechanism relies on the IP address obtained from these headers via the Echo framework's `RealIP()` function. Because these headers can be manipulated by attackers, they can send unlimited requests by changing the spoofed IP address, effectively circumventing rate limits."}, {'type': 'paragraph', 'content': 'This flaw enables attackers to abuse unauthenticated endpoints, such as performing brute-force attacks on usernames or passwords without restriction. The issue was fixed in Vikunja version 2.2.0 by introducing configuration options to control how client IP addresses are extracted and to trust only certain proxies, preventing header spoofing from bypassing rate limits.'}] [1, 2]


How can this vulnerability impact me? :

The primary impact of this vulnerability is that unauthenticated attackers can bypass rate limits and send unlimited requests to unauthenticated endpoints of the Vikunja application.

  • Attackers can perform brute-force attacks on usernames or passwords without being blocked by rate limiting.
  • This can lead to account compromise if weak credentials are used.
  • The vulnerability has a moderate severity with a CVSS v3 base score of 5.3, indicating a network attack vector with low complexity and no required privileges.

How can this vulnerability be detected on my network or system? Can you suggest some commands?

[{'type': 'paragraph', 'content': 'This vulnerability can be detected by monitoring the rate-limit headers on unauthenticated endpoints, such as the login endpoint `/api/v1/login`. If the rate-limit counter resets when the `X-Forwarded-For` or `X-Real-IP` headers are changed between requests, it indicates that the rate limiting is relying on these headers and can be bypassed.'}, {'type': 'paragraph', 'content': 'A practical approach is to use a web proxy tool (e.g., Burp Suite) to send repeated requests to the vulnerable endpoints while modifying the `X-Forwarded-For` or `X-Real-IP` headers to different spoofed IP addresses. Observing if the server continues to allow requests beyond the expected rate limit confirms the vulnerability.'}, {'type': 'paragraph', 'content': 'Example commands using curl to test the vulnerability by spoofing headers:'}, {'type': 'list_item', 'content': 'curl -H "X-Forwarded-For: 1.2.3.4" https://your-vikunja-instance/api/v1/login'}, {'type': 'list_item', 'content': 'curl -H "X-Forwarded-For: 5.6.7.8" https://your-vikunja-instance/api/v1/login'}, {'type': 'paragraph', 'content': 'If the server allows unlimited requests by changing these headers, the vulnerability is present.'}] [2]


What immediate steps should I take to mitigate this vulnerability?

The immediate mitigation is to upgrade Vikunja to version 2.2.0 or later, where this vulnerability is patched.

The patch introduces two new configuration options:

  • `service.ipextractionmethod` - controls how the client IP address is determined.
  • `service.trustedproxies` - defines which proxies are trusted to set the client IP, preventing spoofing from untrusted sources.

By configuring these options properly, you ensure that only trusted proxies can influence the perceived client IP address, preventing attackers from bypassing rate limits by spoofing headers.

If upgrading immediately is not possible, deploying a reverse proxy (such as Traefik) that overwrites or strips the `X-Forwarded-For` and `X-Real-IP` headers can mitigate the issue temporarily.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart