Skip to content
Heist/ feed
Back to feed
High

Portainer: JWT accepted in URL query leaks tokens to logs and referers

Type: advisorySources: OSV

Portainer Community Edition is a lightweight service delivery platform for containerized applications that can be used to manage Docker, Swarm, Kubernetes and ACI environments. From 2.33.0 to before 2.33.8, 2.39.2, and 2.41.0, Portainer's authentication middleware accepts JWT bearer tokens passed as the ?token= URL query parameter on any authenticated API endpoint, in addition to the standard Authorization: Bearer header. URLs are recorded in reverse-proxy access logs, browser history, and HTTP Referer headers on outbound navigation, so any JWT passed this way can be harvested by anyone with access to those logs or by an external site the user subsequently visits. A leaked token grants the full privileges of the user it was issued to, until the token expires (default 8 hours, configurable). The ?token= parameter was used by Portainer's browser-based container attach, exec, and pod shell features, so any user with exec or attach rights on a container was exposed — not only administrators. This vulnerability is fixed in 2.33.8, 2.39.2, and 2.41.0.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-44883
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 15:55 UTC · Revision 1

Source evidence

Portainer: JWT accepted in URL query leaks tokens to logs and referers

core-osv · Original source

Published 28 May 2026, 20:59 UTC

Portainer Community Edition is a lightweight service delivery platform for containerized applications that can be used to manage Docker, Swarm, Kubernetes and ACI environments. From 2.33.0 to before 2.33.8, 2.39.2, and 2.41.0, Portainer's authentication middleware accepts JWT bearer tokens passed as the ?token= URL query parameter on any authenticated API endpoint, in addition to the standard Authorization: Bearer header. URLs are recorded in reverse-proxy access logs, browser history, and HTTP Referer headers on outbound navigation, so any JWT passed this way can be harvested by anyone with access to those logs or by an external site the user subsequently visits. A leaked token grants the full privileges of the user it was issued to, until the token expires (default 8 hours, configurable). The ?token= parameter was used by Portainer's browser-based container attach, exec, and pod shell features, so any user with exec or attach rights on a container was exposed — not only administrators. This vulnerability is fixed in 2.33.8, 2.39.2, and 2.41.0.

osv:CVE-2026-44883
Complete source record
{
  "id": "aca852c26235fc121268c6412c3f83a82a4ee47baefac19ae29fd19e77aa17bf",
  "url": "https://osv.dev/vulnerability/CVE-2026-44883",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Portainer: JWT accepted in URL query leaks tokens to logs and referers",
    "summary": "Portainer Community Edition is a lightweight service delivery platform for containerized applications that can be used to manage Docker, Swarm, Kubernetes and ACI environments. From 2.33.0 to before 2.33.8, 2.39.2, and 2.41.0, Portainer's authentication middleware accepts JWT bearer tokens passed as the ?token= URL query parameter on any authenticated API endpoint, in addition to the standard Authorization: Bearer header. URLs are recorded in reverse-proxy access logs, browser history, and HTTP Referer headers on outbound navigation, so any JWT passed this way can be harvested by anyone with access to those logs or by an external site the user subsequently visits. A leaked token grants the full privileges of the user it was issued to, until the token expires (default 8 hours, configurable). The ?token= parameter was used by Portainer's browser-based container attach, exec, and pod shell features, so any user with exec or attach rights on a container was exposed — not only administrators. This vulnerability is fixed in 2.33.8, 2.39.2, and 2.41.0.",
    "evidence": "osv:CVE-2026-44883",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-44883",
      "aliases": [
        "CVE-2026-44883",
        "GHSA-jvp4-q659-95mj",
        "GO-2026-5480"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/portainer/portainer",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0d8802c6d1365588c75793ba891a92268db852d1"
                },
                {
                  "fixed": "245f90550729f0269bc7e362f9d282e34788fb7c"
                },
                {
                  "introduced": "54b66cf63621e269d2fd62dd218a204fe0ba2712"
                },
                {
                  "fixed": "aae5e533c6e2b7076a5ce0d4faf9ce4dfdc8b5a7"
                },
                {
                  "introduced": "6c863bfa6787a91ab0cb45c432b53e7bf80c78f8"
                },
                {
                  "fixed": "0b8d0db0bed66f4c55499ec93d90a9e7c5a2774a"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:portainer:portainer:*:*:*:*:community:*:*:*",
                    "range": [
                      {
                        "introduced": "2.33.0"
                      },
                      {
                        "fixed": "2.33.8"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:portainer:portainer:*:*:*:*:community:*:*:*",
                    "range": [
                      {
                        "introduced": "2.34.0"
                      },
                      {
                        "fixed": "2.39.2"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:portainer:portainer:*:*:*:*:community:*:*:*",
                    "range": [
                      {
                        "introduced": "2.40.0"
                      },
                      {
                        "fixed": "2.41.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-44883.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:30.095147578Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44883.json",
        "https://github.com/portainer/portainer/security/advisories/GHSA-jvp4-q659-95mj",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-44883"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-598"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44883.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-44883",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 497054,
  "published_at": "2026-05-28T20:59:52.463+00:00"
}