Skip to content
Heist/ feed
Back to feed
Medium

Vikunja has SSRF via OpenID Connect Avatar Download that Bypasses Webhook SSRF Protections

Type: advisorySources: OSV

Vikunja is an open-source self-hosted task management platform. Prior to version 2.2.1, the `DownloadImage` function in `pkg/utils/avatar.go` uses a bare `http.Client{}` with no SSRF protection when downloading user avatar images from the OpenID Connect `picture` claim URL. An attacker who controls their OIDC profile picture URL can force the Vikunja server to make HTTP GET requests to arbitrary internal or cloud metadata endpoints. This bypasses the SSRF protections that are correctly applied to the webhook system. Version 2.2.1 patches the issue.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-33679
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 12:04 UTC · Revision 1

Source evidence

Vikunja has SSRF via OpenID Connect Avatar Download that Bypasses Webhook SSRF Protections

core-osv · Original source

Published 24 Mar 2026, 15:46 UTC

Vikunja is an open-source self-hosted task management platform. Prior to version 2.2.1, the `DownloadImage` function in `pkg/utils/avatar.go` uses a bare `http.Client{}` with no SSRF protection when downloading user avatar images from the OpenID Connect `picture` claim URL. An attacker who controls their OIDC profile picture URL can force the Vikunja server to make HTTP GET requests to arbitrary internal or cloud metadata endpoints. This bypasses the SSRF protections that are correctly applied to the webhook system. Version 2.2.1 patches the issue.

osv:CVE-2026-33679
Complete source record
{
  "id": "fb5c806bbab71bfd52b2b513e5f5538af59c4c9dd36af124cf1475c9a5032860",
  "url": "https://osv.dev/vulnerability/CVE-2026-33679",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Vikunja has SSRF via OpenID Connect Avatar Download that Bypasses Webhook SSRF Protections",
    "summary": "Vikunja is an open-source self-hosted task management platform. Prior to version 2.2.1, the `DownloadImage` function in `pkg/utils/avatar.go` uses a bare `http.Client{}` with no SSRF protection when downloading user avatar images from the OpenID Connect `picture` claim URL. An attacker who controls their OIDC profile picture URL can force the Vikunja server to make HTTP GET requests to arbitrary internal or cloud metadata endpoints. This bypasses the SSRF protections that are correctly applied to the webhook system. Version 2.2.1 patches the issue.",
    "evidence": "osv:CVE-2026-33679",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-33679",
      "aliases": [
        "CVE-2026-33679",
        "GHSA-g9xj-752q-xh63",
        "GO-2026-4852"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:L"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/go-vikunja/vikunja",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "6d5d3e051f4f9f6d72f5d1d552c2d90910fccb28"
                },
                {
                  "fixed": "363aa6642352b08fc8bc6aaff2f3a550393af1cf"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:vikunja:vikunja:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2.2.1"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "363aa6642352b08fc8bc6aaff2f3a550393af1cf"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "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-33679.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:50.896242942Z",
      "provider": "osv",
      "references": [
        "https://vikunja.io/changelog/vikunja-v2.2.2-was-released",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33679.json",
        "https://github.com/go-vikunja/vikunja/security/advisories/GHSA-g9xj-752q-xh63",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-33679",
        "https://github.com/go-vikunja/vikunja/commit/363aa6642352b08fc8bc6aaff2f3a550393af1cf"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-918"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33679.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-33679",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 519227,
  "published_at": "2026-03-24T15:46:10.417+00:00"
}