GHSA-3CCG-X393-96V8

Vulnerability from github – Published: 2026-02-25 22:02 – Updated: 2026-02-25 22:02
VLAI?
Summary
Vijkunja has Weak Password Policy Combined with Persistent Sessions After Password Change
Details

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.

Weak Password Policy Combined with Persistent Sessions After Password Change POC

A fixed version is available at https://github.com/go-vikunja/vikunja/releases/tag/v2.0.0.

Show details on source website

{
  "affected": [
    {
      "package": {
        "ecosystem": "Go",
        "name": "code.vikunja.io/api"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "last_affected": "0.24.6"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [
    "CVE-2026-27575"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-521",
      "CWE-613"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-02-25T22:02:37Z",
    "nvd_published_at": null,
    "severity": "CRITICAL"
  },
  "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 \u2013 Require passwords to be 8\u201316+ characters with a mix of uppercase, lowercase, numbers, and special characters.\n- Block common passwords \u2013 Use a blacklist of commonly used and breached passwords.\n- Use secure hashing \u2013 Store passwords using strong salted hashing algorithms like bcrypt or Argon2.\n- Enable account lockout \u2013 Limit failed login attempts to reduce brute-force risk.\n- Educate users \u2013 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\u003cimg 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\" /\u003e\n\nA fixed version is available at https://github.com/go-vikunja/vikunja/releases/tag/v2.0.0.",
  "id": "GHSA-3ccg-x393-96v8",
  "modified": "2026-02-25T22:02:37Z",
  "published": "2026-02-25T22:02:37Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/go-vikunja/vikunja/security/advisories/GHSA-3ccg-x393-96v8"
    },
    {
      "type": "WEB",
      "url": "https://github.com/go-vikunja/vikunja/commit/89c17d3b23e2a23320ad135b4e8f0a14fdd91bda"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/go-vikunja/vikunja"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
      "type": "CVSS_V3"
    }
  ],
  "summary": "Vijkunja has Weak Password Policy Combined with Persistent Sessions After Password Change"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.


Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…