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.
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/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:XPortainer
APPPortainer2.33.0 – 2.33.8 (bez)2.34.0 – 2.39.2 (bez)2.40.0 – 2.41.0 (bez)
Related vulnerabilities
Portainer CE: brak autoryzacji dla operacji na pluginach Docker
Portainer: Pominięcie ograniczeń bezpieczeństwa kontenerów przez Docker Swarm API
Portainer: niekontrolowane przekierowanie URL (open redirect)
In Portainer Agent before 2.11.1, an API server can continue running even if not associated with a Portainer i...
Portainer 1.24.1 and earlier is affected by incorrect access control that may lead to remote arbitrary code ex...