Skip to content
Heist/ feed
Back to feed
High

Vikunja: Plaintext storage of password-reset/email-confirm tokens in database enables account takeover on DB read access

Type: advisorySources: OSV

Vikunja is an open-source self-hosted task management platform. Versions prior to 2.4.0 store password-reset, email-confirmation, and account-deletion tokens in the `user_tokens` table in plaintext. If an attacker gains read access to the database through a backup leak, misconfigured storage, or SQL-level exposure, they can immediately use pending tokens to take over user accounts without knowing passwords. Version 2.4.0 fixes the issue.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-62376
Confirmed fixed CVEs
Not specified
Updated in this feed
6 Nov 2026, 02:29 UTC · Revision 1

Source evidence

Vikunja: Plaintext storage of password-reset/email-confirm tokens in database enables account takeover on DB read access

core-osv · Original source

Published 9 Oct 2026, 20:50 UTC

Vikunja is an open-source self-hosted task management platform. Versions prior to 2.4.0 store password-reset, email-confirmation, and account-deletion tokens in the `user_tokens` table in plaintext. If an attacker gains read access to the database through a backup leak, misconfigured storage, or SQL-level exposure, they can immediately use pending tokens to take over user accounts without knowing passwords. Version 2.4.0 fixes the issue.

osv:CVE-2026-62376
Complete source record
{
  "id": "59de3b84db456fa3f162529c54cae0c4f3e2246ecb405f6b26435514354d3575",
  "url": "https://osv.dev/vulnerability/CVE-2026-62376",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Vikunja: Plaintext storage of password-reset/email-confirm tokens in database enables account takeover on DB read access",
    "summary": "Vikunja is an open-source self-hosted task management platform. Versions prior to 2.4.0 store password-reset, email-confirmation, and account-deletion tokens in the `user_tokens` table in plaintext. If an attacker gains read access to the database through a backup leak, misconfigured storage, or SQL-level exposure, they can immediately use pending tokens to take over user accounts without knowing passwords. Version 2.4.0 fixes the issue.",
    "evidence": "osv:CVE-2026-62376",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-62376",
      "aliases": [
        "CVE-2026-62376",
        "GHSA-r6w9-259g-gwrv",
        "GO-2026-6748"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/go-vikunja/vikunja",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "907850feae3866ae9b16ea1c7b84a4d77273415a"
                },
                {
                  "fixed": "00fd2c6155c01faae99be4226b931d8091fd6323"
                },
                {
                  "fixed": "3a0ea15d8c18ff960bc98ae39950fa7a14b0af7d"
                },
                {
                  "fixed": "e31ea2de5040fa63bc97cf4df63bafed3bd9ad85"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2.4.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "00fd2c6155c01faae99be4226b931d8091fd6323"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "3a0ea15d8c18ff960bc98ae39950fa7a14b0af7d"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "e31ea2de5040fa63bc97cf4df63bafed3bd9ad85"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "907850feae3866ae9b16ea1c7b84a4d77273415a"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v2.4.0"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v2.3.0",
            "v2.2.2",
            "v2.2.1",
            "v2.2.0",
            "v2.1.0",
            "v2.0.0",
            "v1.1.0",
            "v1.0.0",
            "v1.0.0-rc4",
            "v1.0.0-rc3",
            "v1.0.0-rc2",
            "v1.0.0-rc1",
            "v1.0.0-rc0",
            "v0.24.1",
            "v0.23.0",
            "v0.22.1",
            "v0.22.0",
            "v0.21.0",
            "v0.20.4",
            "v0.20.3",
            "v0.20.1",
            "v0.20.0",
            "v0.19.2",
            "v0.19.1",
            "v0.19.0",
            "v0.18.1",
            "v0.18.0",
            "v0.17.0",
            "v0.16.0",
            "v0.15.0",
            "v0.14.0",
            "v0.13",
            "v0.12",
            "v0.11",
            "v0.10",
            "v0.9",
            "v0.8",
            "v0.7",
            "v0.6",
            "v0.5",
            "v0.4",
            "v0.3",
            "v0.2",
            "v0.1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-62376.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:45.980672557Z",
      "provider": "osv",
      "references": [
        "https://github.com/go-vikunja/vikunja/releases/tag/v2.4.0",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/62xxx/CVE-2026-62376.json",
        "https://github.com/go-vikunja/vikunja/security/advisories/GHSA-r6w9-259g-gwrv",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-62376",
        "https://github.com/go-vikunja/vikunja/commit/00fd2c6155c01faae99be4226b931d8091fd6323",
        "https://github.com/go-vikunja/vikunja/commit/3a0ea15d8c18ff960bc98ae39950fa7a14b0af7d",
        "https://github.com/go-vikunja/vikunja/commit/e31ea2de5040fa63bc97cf4df63bafed3bd9ad85"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-312",
          "CWE-916"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/62xxx/CVE-2026-62376.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-62376",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 514287,
  "published_at": "2026-10-09T20:50:35.524+00:00"
}