{"id":"CVE-2026-91973","kind":"vulnerability","aliases":["CVE-2026-91973","GHSA-m469-88xx-8rx2","GO-2026-6737"],"related":[],"title":"Vikunja: CalDAV and feeds BasicAuth endpoints have no rate limit, bypassing the anti-brute-force floor on account passwords in code.vikunja.io/api","description":"Vikunja: CalDAV and feeds BasicAuth endpoints have no rate limit, bypassing the anti-brute-force floor on account passwords in code.vikunja.io/api.\n\nNOTE: The source advisory for this report contains additional versions that could not be automatically mapped to standard Go module versions.\n\n(If this is causing false-positive reports from vulnerability scanners, please suggest an edit to the report.)\n\nThe additional affected modules and versions are: code.vikunja.io/api before v2.6.0.","summary":"The Vikunja Go module code.vikunja.io/api has no rate limit on its CalDAV and feeds BasicAuth endpoints, so the brute-force protection that applies to normal logins does not apply there. An attacker can guess account passwords through those endpoints and log in as the user.","severity":"high","cvss":8.7,"epss":0.00672,"exploited":false,"exploited_at":null,"products":[{"name":"code.vikunja.io/api","fixed":[],"affected":"all versions","ecosystem":"go"}],"ecosystems":["go"],"tags":["caldav","go","package","self-hosted","vikunja"],"not_affected_if":[],"how_to_check":"Check the Vikunja version in use: the advisory lists code.vikunja.io/api before v2.6.0 as affected. Also check whether the CalDAV or feeds endpoints are reachable from the internet.","fix":"Upgrade code.vikunja.io/api to v2.6.0 or later.","status":"open","published_at":"2026-09-15T16:17:54+00:00","first_seen_at":"2026-10-23T19:13:08+00:00","triaged_at":"2026-10-23T21:44:07+00:00","updated_at":"2026-10-23T21:44:07+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-23T21:44:07Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade code.vikunja.io/api to v2.6.0 or later.","reach":"internet","impact":"high","summary":"The Vikunja Go module code.vikunja.io/api has no rate limit on its CalDAV and feeds BasicAuth endpoints, so the brute-force protection that applies to normal logins does not apply there. An attacker can guess account passwords through those endpoints and log in as the user.","category":"package","who_cares":["go","self-hosted","vikunja","caldav"],"confidence":0.6,"needs_auth":"no","worst_case":"Attacker guesses account passwords via CalDAV or feeds, gaining account access.","analyst_note":"","how_to_check":"Check the Vikunja version in use: the advisory lists code.vikunja.io/api before v2.6.0 as affected. Also check whether the CalDAV or feeds endpoints are reachable from the internet.","needs_analyst":false,"not_affected_if":[],"user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000969,"input_tokens":2998,"output_tokens":1338,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':26A,34A,37A '-6737':35A '-91973':27A,38A '/api':24A,41A,55B,169C '/api.':120C '88xx':31A '8rx2':32A 'account':19A,86B,115C 'addit':129C,161C 'advisori':124C 'affect':162C 'anti':14A,110C 'anti-brute-forc':13A,109C 'appli':74B,80B 'attack':83B 'automat':135C 'basicauth':5A,65B,101C 'brute':15A,70B,111C 'brute-forc':69B 'bypass':11A,107C 'caldav':2A,42B,62B,98C 'caus':145C 'code.vikunja.io':23A,40A,54B,119C,168C 'code.vikunja.io/api':22A,39A,53B,167C 'code.vikunja.io/api.':118C 'contain':128C 'could':132C 'cve':25A,36A 'edit':156C 'endpoint':6A,66B,90B,102C 'fals':147C 'false-posit':146C 'feed':4A,64B,100C 'floor':17A,113C 'forc':16A,71B,112C 'ghsa':29A 'ghsa-m469-88xx-8rx2':28A 'go':33A,43B,51B,139C 'guess':85B 'host':47B 'limit':10A,59B,106C 'log':92B 'login':77B 'm469':30A 'map':136C 'modul':52B,140C,163C 'normal':76B 'note':121C 'packag':44B 'password':20A,87B,116C 'pleas':153C 'posit':148C 'protect':72B 'rate':9A,58B,105C 'report':127C,149C,159C 'scanner':152C 'self':46B 'self-host':45B 'sourc':123C 'standard':138C 'suggest':154C 'user':96B 'v2.6.0':171C 'version':130C,141C,165C 'vikunja':1A,48B,50B,97C 'vulner':151C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-09-15T16:17:54+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"govuln","external_id":"GO-2026-6737","url":"https://pkg.go.dev/vuln/GO-2026-6737","severity":null,"published_at":"2026-10-19T21:08:26+00:00","modified_at":"2026-10-19T21:08:26+00:00","first_seen_at":"2026-10-23T19:13:08+00:00","fetched_at":"2026-10-23T19:13:08+00:00","note":null},{"source":"epss","external_id":"CVE-2026-91973","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-91973","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-23T19:13:43+00:00","fetched_at":"2026-10-23T19:13:43+00:00","note":null},{"source":"nvd","external_id":"CVE-2026-91973","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-91973","severity":null,"published_at":"2026-09-15T16:17:54+00:00","modified_at":"2026-09-16T20:16:09+00:00","first_seen_at":"2026-10-23T19:35:23+00:00","fetched_at":"2026-10-23T19:35:23+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}