Permissive CORS policy trusting localhost origins in Vikunja
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- Passive
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA.
Summary
Vikunja from 2.2.0 before 2.7.0 has a permissive CORS configuration that trusts every localhost and 127.0.0.1 port with credentials, even when service.publicurl is set. An attacker who controls a page on any localhost port can send a credentialed request to the token refresh endpoint and read the returned bearer JWT, which lets them take over the logged-in user's account. The flaw is tracked as CWE-942, and the attack requires a user to visit a malicious page while logged in.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
Description from the CNA
Vikunja from 2.2.0 before 2.7.0 contains a permissive CORS configuration that trusts every localhost and 127.0.0.1 port with credentials, even when service.publicurl is set. Attackers controlling a page on any localhost port can send a credentialed request to the token refresh endpoint and read the returned bearer JWT to take over the logged-in user's account.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| go-vikunja | vikunja | 2.2.0 to before 2.7.0 | 2.7.0 | Patch available | CNA |
- vikunja Vendorgo-vikunja Affected 2.2.0 to before 2.7.0 Fixed in 2.7.0 Patch available CNA
CPE names Threatist (inferred) · 1
Inferred from how NVD named this product before; not given by a source.
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:vikunja:vikunja:*:*:*:*:*:*:*:* | — | — | go-vikunja |
- cpe:2.3:a:vikunja:vikunja:*:*:*:*:*:*:*:* Versions — — ·go-vikunja
Remediation
Upgrade vikunja to version 2.7.0, which fixes the CORS policy.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
- Fix · CNA vikunja (go-vikunja) Fixed in 2.7.0
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
go-vikunja vikunja 2.7.0
5 records Highest priority Priority HIGH 1 HIGH, 3 MEDIUM, 1 LOW
Other records, highest priority first
- TI-2026-76125 Improper access revocation in Vikunja webhooks exposes project dataPriority MEDIUM 64
- TI-2026-76123 Vikunja WebSocket Authentication Ignores Session RevocationPriority MEDIUM 64
- TI-2026-76127 Incorrect authorization in Vikunja link share deletionPriority MEDIUM 57
Timeline
- 2026-10-18 Threatist record created from CVE-2026-111922
- 2026-10-18 Alias added: GHSA-r87c-f263-6pfc
- 2026-10-18 Priority changed: MEDIUM → LOW
- 2026-10-19 CISA SSVC decision points changed
- 2026-10-19 Priority changed: LOW → HIGH
References
More go-vikunja vulnerabilities
- TI-2026-40929 Authorization bypass in go-vikunja Vikunja CVSS 4.0CRITICAL 9.3
- TI-2026-21967 Vijkunja has Weak Password Policy Combined with Persistent Sessions After Password Change CVSS 3.1CRITICAL 9.1
- TI-2026-62115 Vikunja before 2.6.0 Privilege Escalation via Link Share Hash CVSS 4.0HIGH 8.7
- TI-2026-62108 Vikunja before 2.6.0 Authentication Bypass via CalDAV BasicAuth CVSS 4.0HIGH 8.7
- TI-2026-62107 Vikunja before 2.6.0 Authentication Bypass via Unthrottled API CVSS 4.0HIGH 8.7
- TI-2026-26971 Vikunja ahs a TOTP Two-Factor Authentication Bypass via OIDC Login Path CVSS 3.1CRITICAL 9.1
Sources
- CVE-2026-111922 · CVE Program
- CVE-2026-111922 · NVD
- FIRST EPSS
- GHSA-r87c-f263-6pfc · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences