CVE-2026-44883: Portainer: JWT accepted in URL query leaks tokens to logs and referers
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.
References
- github.com/advisories/GHSA-jvp4-q659-95mj
- github.com/portainer/portainer/releases/tag/2.33.8
- github.com/portainer/portainer/releases/tag/2.39.2
- github.com/portainer/portainer/releases/tag/2.41.0
- github.com/portainer/portainer/security/advisories/GHSA-jvp4-q659-95mj
- nvd.nist.gov/vuln/detail/CVE-2026-44883
Code Behaviors & Features
Detect and mitigate CVE-2026-44883 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →