Portainer: JWT accepted in URL query leaks tokens to logs and referers
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Passive
- Attack complexity
- High
- Attack requirements
- None
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub.
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=<JWT> 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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| portainer | portainer | 2.33.0 to before 2.33.8; 2.39.0 to before 2.39.2; 2.40.0 to before 2.41.0 | 2.33.8, 2.39.2, 2.41.0 | Patch available | CNA |
| — | github.com/portainer/portainer (Go) | 2.33.0 to before 2.33.8 | 2.33.8 | Patch available | GHSA-jvp4-q659-95mj |
| — | github.com/portainer/portainer (Go) | 2.39.0 to before 2.39.2 | 2.39.2 | Patch available | GHSA-jvp4-q659-95mj |
| — | github.com/portainer/portainer (Go) | 2.40.0 to before 2.41.0 | 2.41.0 | Patch available | GHSA-jvp4-q659-95mj |
- portainer Vendorportainer Affected 2.33.0 to before 2.33.8; 2.39.0 to before 2.39.2; 2.40.0 to before 2.41.0 Fixed in 2.33.8, 2.39.2, 2.41.0 Patch available CNA
- github.com/portainer/portainer (Go) Vendor— Affected 2.33.0 to before 2.33.8 Fixed in 2.33.8 Patch available GHSA-jvp4-q659-95mj
- github.com/portainer/portainer (Go) Vendor— Affected 2.39.0 to before 2.39.2 Fixed in 2.39.2 Patch available GHSA-jvp4-q659-95mj
- github.com/portainer/portainer (Go) Vendor— Affected 2.40.0 to before 2.41.0 Fixed in 2.41.0 Patch available GHSA-jvp4-q659-95mj
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:portainer:portainer:*:*:*:*:community:*:*:* | 2.33.0 to before 2.33.8; 2.34.0 to before 2.39.2; 2.40.0 to before 2.41.0 | Vulnerable | portainer |
- cpe:2.3:a:portainer:portainer:*:*:*:*:community:*:*:* Versions 2.33.0 to before 2.33.8; 2.34.0 to before 2.39.2; 2.40.0 to before 2.41.0 Vulnerable ·portainer
Remediation
- Fix · CNA portainer (portainer) Fixed in 2.33.8, 2.39.2, 2.41.0
- Fix · GHSA-jvp4-q659-95mj github.com/portainer/portainer (Go) Fixed in 2.33.8 Advisory →
- Fix · GHSA-jvp4-q659-95mj github.com/portainer/portainer (Go) Fixed in 2.39.2 Advisory →
- Fix · GHSA-jvp4-q659-95mj github.com/portainer/portainer (Go) Fixed in 2.41.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-44883
- 2026-10-03 Alias added: GHSA-jvp4-q659-95mj
References
More Portainer vulnerabilities
- TI-2026-32726 Portainer: Missing authorization on Docker plugin endpoints allows host RCE CVSS 4.0CRITICAL 9.4
- TI-2026-32727 Portainer: Endpoint security bypass via Swarm service create/update CVSS 4.0CRITICAL 9.4
- TI-2020-14859 Portainer 1.24.1 and earlier is affected by incorrect access control that may lead to… CVSS 3.1CRITICAL 9.8
- TI-2024-22245 Portainer before 2.20.0 allows redirects when the target is not index.yaml. CVSS 3.1CRITICAL 9.1
- TI-2018-13786 A vulnerability was found in Portainer before 1.20.0. CVSS 3.0CRITICAL 9.8
- TI-2018-09100 Portainer before 1.18.0 supports unauthenticated requests to the websocket endpoint with… CVSS 3.0CRITICAL 9.8
Sources
- CVE-2026-44883 · CVE Program
- CVE-2026-44883 · NVD
- FIRST EPSS
- GHSA-jvp4-q659-95mj · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences