Skip to content
Heist/ feed
Back to feed
Unrated

Duplicate Advisory: Vikunja: TOTP secret is readable after enrollment, no step-up auth

Type: withdrawalSources: OSV

### Duplicate Advisory This advisory has been withdrawn because it is a duplicate of GHSA-88f6-4rjv-x774. This link is maintained to preserve external references. ### Original Description Vikunja before 2.6.0 continues to expose the raw TOTP shared secret after enrollment through the GET /api/v1/user/settings/totp and /api/v1/user/settings/totp/qrcode endpoints without re-authentication. Attackers with a valid access token can read the secret, import it into their own authenticator, and generate valid codes indefinitely to defeat the second factor and enable account takeover.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
Not specified
Confirmed fixed CVEs
Not specified
Updated in this feed
28 Oct 2026, 13:04 UTC · Revision 1

Source evidence

Duplicate Advisory: Vikunja: TOTP secret is readable after enrollment, no step-up auth

core-osv · Original source

Published 15 Sept 2026, 18:32 UTC

### Duplicate Advisory This advisory has been withdrawn because it is a duplicate of GHSA-88f6-4rjv-x774. This link is maintained to preserve external references. ### Original Description Vikunja before 2.6.0 continues to expose the raw TOTP shared secret after enrollment through the GET /api/v1/user/settings/totp and /api/v1/user/settings/totp/qrcode endpoints without re-authentication. Attackers with a valid access token can read the secret, import it into their own authenticator, and generate valid codes indefinitely to defeat the second factor and enable account takeover.

osv:GHSA-jmr8-r558-3jhx

code.vikunja.io/api

Fixed versions: Not specified

Complete source record
{
  "id": "0cd8e4f988a7941928836170e59e0c09f7e2e7cf39da39e831c04012b6d74284",
  "url": "https://osv.dev/vulnerability/GHSA-jmr8-r558-3jhx",
  "method": "structured",
  "payload": {
    "kind": "withdrawal",
    "title": "Duplicate Advisory: Vikunja: TOTP secret is readable after enrollment, no step-up auth",
    "summary": "### Duplicate Advisory This advisory has been withdrawn because it is a duplicate of GHSA-88f6-4rjv-x774. This link is maintained to preserve external references. ### Original Description Vikunja before 2.6.0 continues to expose the raw TOTP shared secret after enrollment through the GET /api/v1/user/settings/totp and /api/v1/user/settings/totp/qrcode endpoints without re-authentication. Attackers with a valid access token can read the secret, import it into their own authenticator, and generate valid codes indefinitely to defeat the second factor and enable account takeover.",
    "evidence": "osv:GHSA-jmr8-r558-3jhx",
    "products": [
      {
        "name": {
          "value": "code.vikunja.io/api",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": []
      }
    ],
    "severity": "medium",
    "structured": {
      "id": "GHSA-jmr8-r558-3jhx",
      "aliases": [
        "GHSA-jmr8-r558-3jhx"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N"
        },
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "SEMVER",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "2.5.0"
                }
              ]
            }
          ],
          "package": {
            "name": "code.vikunja.io/api",
            "purl": "pkg:golang/code.vikunja.io/api",
            "ecosystem": "Go"
          },
          "database_specific": {
            "source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-jmr8-r558-3jhx/GHSA-jmr8-r558-3jhx.json"
          }
        }
      ],
      "modified": "2026-10-09T21:00:06.431838779Z",
      "provider": "osv",
      "references": [
        "https://github.com/go-vikunja/vikunja/security/advisories/GHSA-88f6-4rjv-x774",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-91982",
        "https://www.vulncheck.com/advisories/vikunja-before-2.6.0-totp-secret-disclosure-via-api"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-522"
        ],
        "severity": "MODERATE",
        "github_reviewed": true,
        "nvd_published_at": "2026-09-15T16:17:55Z",
        "github_reviewed_at": "2026-10-09T20:51:10Z"
      }
    },
    "related_cves": [],
    "security_relevant": true,
    "severity_evidence": "/severity/1/score"
  },
  "source_id": "core-osv",
  "document_id": 124150,
  "published_at": "2026-09-15T18:32:30+00:00"
}