CVE-2026-27575: Code.vikunja.io/api Vijkunja Has Weak Password Policy Vulnerability

CRITICAL
Advisory Identifier: GHSA-3ccg-x393-96v8
CVSS 9.1
CWE-613 CWE-521
Published
Advisory Summary

CVE-2026-27575 is a CRITICAL (CVSS 9.1) vijkunja has weak password policy vulnerability (CWE-613: Insufficient Session Expiration) affecting Code.vikunja.io/api libraries in the Go ecosystem. The issue involves vijkunja has weak password policy combined with persistent sessions after password change. Remediation is available in the latest vendor maintenance releases.

CVE-2026-27575 at a Glance

CVE Identifier CVE-2026-27575
GHSA Identifier GHSA-3ccg-x393-96v8
Severity CRITICAL
CVSS v3.1 Base Score 9.1
CWE Classification CWE-613: Insufficient Session Expiration
Affected Product Code.vikunja.io/api
Package Ecosystem Go
Published Date
Last Updated

Security Impact

CVSS: 9.1

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required None (PR:N)
User Interaction None (UI:N)
Scope Unchanged (S:U)
Confidentiality High (C:H)
Integrity High (I:H)
Availability None (A:N)

How to Fix CVE-2026-27575

To remediate this vulnerability, upgrade all affected Code.vikunja.io/api dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

code.vikunja.io/api fixed: Latest secure release
Upgrade code.vikunja.io/api to Latest secure release
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for code.vikunja.io/api

How to Check if You Are Affected

To determine whether your application is affected by CVE-2026-27575, inspect your project dependencies for Code.vikunja.io/api:

inspect dependencies for code.vikunja.io/api

Analyze the terminal output to locate any version of Code.vikunja.io/api in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than the patched release), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-613: Insufficient Session Expiration, where according to wasc, "insufficient session expiration is when a web site permits an attacker to reuse old session credentials or session ids for authorization.". In Code.vikunja.io/api, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

**Summary** The application allows users to set weak passwords (e.g., 1234, password) without enforcing minimum strength requirements. Additionally, active sessions remain valid after a user changes their password. An attacker who compromises an account (via brute-force or credential stuffing) can maintain persistent access even after the victim resets their password. **Details** 1. Weak passwords are accepted during registration and password change. 2. No minimum length or strength validation is enforced. 3. After changing the password, previously issued session tokens remain valid. 4. No forced logout occurs across active sessions. _Attack scenario:_ Attacker guesses or obtains weak credentials. Logs in and obtains active session token. Victim changes password. Attacker continues accessing the account using the old session. **Steps to Reproduce** **1.** Register using a weak password (e.g., 12345678 ). **2.** Log in and Password Change functionality. **3.** Change account password with single character (e.g., 1 or a ) **4.** Reuse the old session. **5.** Observe that access is still granted. **Impact** - Persistent account takeover - Unauthorized access to sensitive data - Increased brute-force success probability - Elevated risk for administrative accounts The combination of weak password controls and improper session invalidation significantly increases both exploitability and impact. **Recommendation** _**Password Policy Improvements:**_ - Enforce strong password policies – Require passwords to be 8–16+ characters with a mix of uppercase, lowercase, numbers, and special characters. - Block common passwords – Use a blacklist of commonly used and breached passwords. - Use secure hashing – Store passwords using strong salted hashing algorithms like bcrypt or Argon2. - Enable account lockout – Limit failed login attempts to reduce brute-force risk. - Educate users – Promote strong password practices and phishing awareness. _**Session Management Fix:**_ - Invalidate all active sessions upon password change - Revoke refresh tokens (if applicable) - Implement token/session versioning - Regenerate session IDs after credential updates - Log and notify users of password change events Implementing both controls will significantly reduce the risk of persistent account compromise. <img width="1918" height="907" alt="Weak Password Policy Combined with Persistent Sessions After Password Change POC" src="https://github.com/user-attachments/assets/f188b69b-0472-4d2c-aeda-c145384c99ef" /> A fixed version is available at https://github.com/go-vikunja/vikunja/releases/tag/v2.0.0.

CVE-2026-27575 Affected Code.vikunja.io/api Versions

1 component(s)
Product / Package Ecosystem Affected Versions Fixed Version
code.vikunja.io/api
Go
≤ 0.24.6

References

Frequently Asked Questions

What is CVE-2026-27575?
CVE-2026-27575 is a security vulnerability in Code.vikunja.io/api involving Vijkunja has Weak Password Policy Combined with Persistent Sessions After Password Change under CWE-613: Insufficient Session Expiration.
Which Code.vikunja.io/api versions are affected?
Affected versions include releases prior to current release patches across affected packages: code.vikunja.io/api.
What version fixes CVE-2026-27575?
Upgrading to current release patches (or the latest patched release for your respective branch) resolves the vulnerability.
Is code.vikunja.io/api affected?
Yes, code.vikunja.io/api is affected in releases prior to Latest secure release. Upgrade your dependency to Latest secure release or later.
What is the CVSS score of CVE-2026-27575?
CVE-2026-27575 has a CVSS v3.1 base score of 9.1 (CRITICAL) with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N.
What CWE is associated with CVE-2026-27575?
CVE-2026-27575 is classified under CWE-613: Insufficient Session Expiration (According to WASC, "Insufficient Session Expiration is when a web site permits an attacker to reuse old session credentials or session IDs for authorization.").
How can I check Go dependencies for CVE-2026-27575?
Run the dependency tree command: 'inspect dependencies for code.vikunja.io/api'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-3ccg-x393-96v8",
  "modified" : "2026-02-27T21:51:50Z",
  "published" : "2026-02-25T22:02:37Z",
  "aliases" : [ "CVE-2026-27575" ],
  "summary" : "Vijkunja has Weak Password Policy Combined with Persistent Sessions After Password Change",
  "details" : "**Summary**\nThe application allows users to set weak passwords (e.g., 1234, password) without enforcing minimum strength requirements. Additionally, active sessions remain valid after a user changes their password.\n\nAn attacker who compromises an account (via brute-force or credential stuffing) can maintain persistent access even after the victim resets their password.\n\n\n**Details**\n\n1. Weak passwords are accepted during registration and password change.\n2. No minimum length or strength validation is enforced.\n3. After changing the password, previously issued session tokens remain valid.\n4. No forced logout occurs across active sessions.\n\n_Attack scenario:_\n\nAttacker guesses or obtains weak credentials.\nLogs in and obtains active session token.\nVictim changes password.\nAttacker continues accessing the account using the old session.\n\n**Steps to Reproduce**\n\n**1.** Register using a weak password (e.g., 12345678 ).\n**2.** Log in and Password Change functionality.\n**3.** Change account password with single character (e.g., 1 or a )\n**4.** Reuse the old session.\n**5.** Observe that access is still granted.\n\n**Impact**\n\n- Persistent account takeover\n- Unauthorized access to sensitive data\n- Increased brute-force success probability\n- Elevated risk for administrative accounts\n\nThe combination of weak password controls and improper session invalidation significantly increases both exploitability and impact.\n\n**Recommendation**\n_**Password Policy Improvements:**_\n\n- Enforce strong password policies – Require passwords to be 8–16+ characters with a mix of uppercase, lowercase, numbers, and special characters.\n- Block common passwords – Use a blacklist of commonly used and breached passwords.\n- Use secure hashing – Store passwords using strong salted hashing algorithms like bcrypt or Argon2.\n- Enable account lockout – Limit failed login attempts to reduce brute-force risk.\n- Educate users – Promote strong password practices and phishing awareness.\n\n_**Session Management Fix:**_\n\n- Invalidate all active sessions upon password change\n- Revoke refresh tokens (if applicable)\n- Implement token/session versioning\n- Regenerate session IDs after credential updates\n- Log and notify users of password change events\n\nImplementing both controls will significantly reduce the risk of persistent account compromise.\n\n<img width=\"1918\" height=\"907\" alt=\"Weak Password Policy Combined with Persistent Sessions After Password Change POC\" src=\"https://github.com/user-attachments/assets/f188b69b-0472-4d2c-aeda-c145384c99ef\" />\n\nA fixed version is available at https://github.com/go-vikunja/vikunja/releases/tag/v2.0.0.",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Go",
      "name" : "code.vikunja.io/api"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "last_affected" : "0.24.6"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/go-vikunja/vikunja/security/advisories/GHSA-3ccg-x393-96v8"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-27575"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/go-vikunja/vikunja/commit/89c17d3b23e2a23320ad135b4e8f0a14fdd91bda"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/go-vikunja/vikunja"
  }, {
    "type" : "WEB",
    "url" : "https://vikunja.io/changelog/vikunja-v2.0.0-was-released"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-521", "CWE-613" ],
    "severity" : "CRITICAL",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-02-25T22:02:37Z",
    "nvd_published_at" : "2026-02-25T22:16:26Z"
  }
}