portainer CVE Vulnerabilities & Metrics

Focus on portainer vulnerabilities and metrics.

Last updated: 13 Aug 2026, 22:25 UTC

About portainer Security Exposure

This page consolidates all known Common Vulnerabilities and Exposures (CVEs) associated with portainer. We track both calendar-based metrics (using fixed periods) and rolling metrics (using gliding windows) to give you a comprehensive view of security trends and risk evolution. Use these insights to assess risk and plan your patching strategy.

For a broader perspective on cybersecurity threats, explore the comprehensive list of CVEs by vendor and product. Stay updated on critical vulnerabilities affecting major software and hardware providers.

Global CVE Overview

Total portainer CVEs: 27
Earliest CVE date: 22 Jun 2018, 18:29 UTC
Latest CVE date: 08 Jul 2026, 16:16 UTC

Latest CVE reference: CVE-2026-55761

Rolling Stats

30-day Count (Rolling): 0
365-day Count (Rolling): 9

Calendar-based Variation

Calendar-based Variation compares a fixed calendar period (e.g., this month versus the same month last year), while Rolling Growth Rate uses a continuous window (e.g., last 30 days versus the previous 30 days) to capture trends independent of calendar boundaries.

Variations & Growth

Month Variation (Calendar): -100.0%
Year Variation (Calendar): 800.0%

Month Growth Rate (30-day Rolling): -100.0%
Year Growth Rate (365-day Rolling): 800.0%

Monthly CVE Trends (current vs previous Year)

Annual CVE Trends (Last 20 Years)

Critical portainer CVEs (CVSS ≥ 9) Over 20 Years

CVSS Stats

Average CVSS: 3.18

Max CVSS: 10.0

Critical CVEs (≥9): 2

CVSS Range vs. Count

Range Count
0.0-3.9 15
4.0-6.9 8
7.0-8.9 2
9.0-10.0 2

CVSS Distribution Chart

Top 5 Highest CVSS portainer CVEs

These are the five CVEs with the highest CVSS scores for portainer, sorted by severity first and recency.

All CVEs for portainer

CVE-2026-55761 portainer vulnerability CVSS: 0 08 Jul 2026, 16:16 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. In versions 2.39.0 through 2.39.3 and 2.40.0 until 2.43.0, unauthenticated restore and administrator initialization endpoints (/api/restore and /api/users/admin/init) remain accessible during the five-minute setup window for uninitialized instances, allowing a network attacker to restore a crafted backup or create the first administrator account and gain full administrative access. This issue is fixed in versions 2.39.4 and 2.43.0.

CVE-2026-44885 portainer vulnerability CVSS: 0 28 May 2026, 22:16 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, Portainer's backup restore feature accepts a .tar.gz archive and extracts it to a target directory on the server. The extraction function (ExtractTarGz in api/archive/targz.go) constructed output paths using filepath.Clean(filepath.Join(outputDirPath, header.Name)). This combination does not prevent directory traversal — a tar entry named ../../etc/cron.d/evil resolves to a path outside the extraction root, so a crafted archive can write files to arbitrary locations on the server filesystem. This vulnerability is fixed in 2.33.8.

CVE-2026-44884 portainer vulnerability CVSS: 0 28 May 2026, 22:16 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 and 2.39.1, a missing authorization vulnerability in the Custom Template file endpoint (GET /api/custom_templates/{id}/file) allows any authenticated user to read the file content of any custom template by enumerating sequential integer IDs, bypassing Resource Control access restrictions. Template files may contain environment-specific values such as connection strings, API tokens, or registry credentials that administrators would not expect standard users to read. This vulnerability is fixed in 2.33.8 and 2.39.1.

CVE-2026-44883 portainer vulnerability CVSS: 0 28 May 2026, 22:16 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=<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.

CVE-2026-44882 portainer vulnerability CVSS: 0 28 May 2026, 22:16 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., Portainer proxies requests to Kubernetes clusters through a middleware layer (kubeClientMiddleware) that validates the requesting user's token before forwarding traffic to the cluster. When security.RetrieveTokenData returned an error, the middleware wrote an HTTP 403 response but was missing a return statement — execution continued into the handler with a nil tokenData value. The Kubernetes endpoints sit behind Portainer's outer AuthenticatedAccess bouncer, so an attacker requires a valid Portainer session. However, a user whose secondary token validation fails in kubeClientMiddleware — for example a user without permission to access a given Kubernetes endpoint — would have their request forwarded to the cluster anyway, bypassing the authorization check. The same defect was present in both the CE and EE codebases. This vulnerability is fixed in 2.33.8.

CVE-2026-44881 portainer vulnerability CVSS: 0 28 May 2026, 22:16 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 supports deploying stacks from Git repositories. When a Git-backed stack is created or updated, Portainer clones the repository using go-git v5, which translates Git blob entries with mode 0o120000 (symlink) into real OS symlinks on the host filesystem via os.Symlink. The only entry blocked from becoming a symlink is .gitmodules; every other path is created as a symlink without validation. Portainer's GET /api/stacks/{id}/file endpoint then reads the stack entry point with os.ReadFile, which follows OS symlinks transparently. A repository containing docker-compose.yml as a symlink to an arbitrary filesystem path causes the symlink target's contents to be returned verbatim in the HTTP response. Any authenticated user with rights to create or update a Git-backed stack — the default configuration in Portainer CE — can read arbitrary files accessible to the Portainer process. This vulnerability is fixed in 2.33.8, 2.39.2, and 2.41.0.

CVE-2026-44850 portainer vulnerability CVSS: 0 28 May 2026, 22:16 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 offers an environment-level Disable bind mounts for non-administrators security setting that blocks regular users from binding host paths into containers they create through the Portainer-mediated Docker API. The check that enforces this setting only inspected the legacy HostConfig.Binds array on the container-create proxy and never looked at the equivalent HostConfig.Mounts array. Any authenticated user with rights to create containers on a Docker environment where the restriction is enabled could submit a bind-typed entry under HostConfig.Mounts and mount any host path into their container. This vulnerability is fixed in 2.33.8, 2.39.2, and 2.41.0.

CVE-2026-44849 portainer vulnerability CVSS: 0 28 May 2026, 22:16 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 enforces seven EndpointSecuritySettings restrictions that administrators configure to restrict the container configurations non-admin users can launch: privileged mode, host PID namespace, device mapping, capabilities, sysctls, security-opt (Seccomp / AppArmor), and bind mounts. These restrictions are enforced on the standard container creation path, but several of them are not applied on the Docker Swarm service API. This vulnerability is fixed in 2.33.8, 2.39.2, and 2.41.0.

CVE-2026-44848 portainer vulnerability CVSS: 0 28 May 2026, 22:16 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, The Docker plugin management endpoints (/plugins/*) were not registered with a handler, so standard users with endpoint access could call privileged plugin operations — including installing and enabling plugins — directly against the underlying Docker daemon. The vulnerability is exposed when a non-admin Portainer user (Standard User role, or any role granted endpoint-level access) has been given access to a Docker endpoint via Portainer RBAC. This vulnerability is fixed in 2.33.8, 2.39.2, and 2.41.0.

CVE-2024-33662 portainer vulnerability CVSS: 0 02 Oct 2024, 05:15 UTC

Portainer before 2.20.2 improperly uses an encryption algorithm in the AesEncrypt function.

CVE-2024-33661 portainer vulnerability CVSS: 0 26 Apr 2024, 00:15 UTC

Portainer before 2.20.0 allows redirects when the target is not index.yaml.

CVE-2024-29296 portainer vulnerability CVSS: 0 10 Apr 2024, 15:16 UTC

A user enumeration vulnerability was found in Portainer CE 2.19.4. This issue occurs during user authentication process, where a difference in response time could allow a remote unauthenticated user to determine if a username is valid or not.

CVE-2022-24961 portainer vulnerability CVSS: 7.5 11 Feb 2022, 06:15 UTC

In Portainer Agent before 2.11.1, an API server can continue running even if not associated with a Portainer instance in the past few days.

CVE-2021-41874 portainer vulnerability CVSS: 5.0 29 Oct 2021, 18:15 UTC

An unauthorized access vulnerabiitly exists in all versions of Portainer, which could let a malicious user obtain sensitive information. NOTE: Portainer has received no detail of this CVE report. There is also no response after multiple attempts of contacting the original source.

CVE-2021-42650 portainer vulnerability CVSS: 4.3 18 Oct 2021, 21:15 UTC

Cross Site Scripting (XSS vulnerability exists in Portainer before 2.9.1 via the node input box in Custom Templates.

CVE-2020-24264 portainer vulnerability CVSS: 10.0 16 Mar 2021, 15:15 UTC

Portainer 1.24.1 and earlier is affected by incorrect access control that may lead to remote arbitrary code execution. The restriction checks for bind mounts are applied only on the client-side and not the server-side, which can lead to spawning a container with bind mount. Once such a container is spawned, it can be leveraged to break out of the container leading to complete Docker host machine takeover.

CVE-2020-24263 portainer vulnerability CVSS: 6.5 16 Mar 2021, 15:15 UTC

Portainer 1.24.1 and earlier is affected by an insecure permissions vulnerability that may lead to remote arbitrary code execution. A non-admin user is allowed to spawn new containers with critical capabilities such as SYS_MODULE, which can be used to take over the Docker host.

CVE-2019-16878 portainer vulnerability CVSS: 3.5 07 Nov 2019, 16:15 UTC

Portainer before 1.22.1 has XSS (issue 2 of 2).

CVE-2019-16877 portainer vulnerability CVSS: 6.5 07 Nov 2019, 16:15 UTC

Portainer before 1.22.1 has Incorrect Access Control (issue 4 of 4).

CVE-2019-16876 portainer vulnerability CVSS: 5.0 07 Nov 2019, 16:15 UTC

Portainer before 1.22.1 allows Directory Traversal.

CVE-2019-16872 portainer vulnerability CVSS: 9.0 07 Nov 2019, 16:15 UTC

Portainer before 1.22.1 has Incorrect Access Control (issue 1 of 4).

CVE-2019-16874 portainer vulnerability CVSS: 4.0 07 Nov 2019, 15:15 UTC

Portainer before 1.22.1 has Incorrect Access Control (issue 2 of 4).

CVE-2019-16873 portainer vulnerability CVSS: 3.5 07 Nov 2019, 15:15 UTC

Portainer before 1.22.1 has XSS (issue 1 of 2).

CVE-2018-19466 portainer vulnerability CVSS: 5.0 27 Mar 2019, 17:29 UTC

A vulnerability was found in Portainer before 1.20.0. Portainer stores LDAP credentials, corresponding to a master password, in cleartext and allows their retrieval via API calls.

CVE-2018-19367 portainer vulnerability CVSS: 5.0 20 Nov 2018, 09:29 UTC

Portainer through 1.19.2 provides an API endpoint (/api/users/admin/check) to verify that the admin user is already created. This API endpoint will return 404 if admin was not created and 204 if it was already created. Attackers can set an admin password in the 404 case.

CVE-2018-16316 portainer vulnerability CVSS: 3.5 01 Sep 2018, 18:29 UTC

A stored Cross-site scripting (XSS) vulnerability in Portainer through 1.19.1 allows remote authenticated users to inject arbitrary JavaScript and/or HTML via the Team Name field.

CVE-2018-12678 portainer vulnerability CVSS: 7.5 22 Jun 2018, 18:29 UTC

Portainer before 1.18.0 supports unauthenticated requests to the websocket endpoint with an unvalidated id query parameter for the /websocket/exec endpoint, which allows remote attackers to bypass intended access restrictions or conduct SSRF attacks.