Read the docs

Permissive CORS policy trusting localhost origins in Vikunja

Priority HIGH 67CWE-942Published · Updated

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

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.0015 4th percentileScored 2026-11-07
Fix Fixed vikunja (go-vikunja): 2.7.0

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

VendorProductAffected versionsFixed inStatusSource
go-vikunjavikunja2.2.0 to before 2.7.02.7.0Patch availableCNA
  • 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.

CPEVersionsRoleVendor
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

  1. 2026-10-18 Threatist record created from CVE-2026-111922
  2. 2026-10-18 Alias added: GHSA-r87c-f263-6pfc
  3. 2026-10-18 Priority changed: MEDIUM → LOW
  4. 2026-10-19 CISA SSVC decision points changed
  5. 2026-10-19 Priority changed: LOW → HIGH

References

  • 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
See all 105 →

Sources