PT-2026-41036 · Go+1 · Github.Com/Portainer/Portainer+1

Johanneslks

+1

·

Published

2026-05-14

·

Updated

2026-05-28

·

CVE-2026-44849

CVSS v4.0

9.4

Critical

VectorAV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Name of the Vulnerable Software and Affected Versions Portainer Community Edition versions 2.33.0 through 2.33.7 Portainer Community Edition versions 2.39.0 through 2.39.1 Portainer Community Edition versions 2.40.0 through 2.40.x Portainer Community Edition versions prior to 2.33.0
Description Portainer fails to properly enforce EndpointSecuritySettings restrictions on the Docker Swarm service API, allowing non-admin users with Swarm endpoint access to bypass security policies. While restrictions on privileged mode, host PID namespace, device mapping, capabilities, sysctls, security-opt (Seccomp / AppArmor), and bind mounts are enforced during standard container creation, they are not consistently applied to Swarm services.
Technical details include:
  • The 'POST /services/create' endpoint only applies one of seven checks, failing to validate CapabilityAdd, CapabilityDrop, Sysctls, and Privileges (Seccomp / AppArmor) in the request body.
  • The 'POST /services/{id}/update' endpoint applies zero checks, as it does not inspect the request body or call the fetchEndpointSecuritySettings() function.
  • The 'POST /volumes/create' endpoint lacks any AllowBindMountsForRegularUsers checks.
  • A bypass exists where a mount with Type: "volume" and VolumeOptions.DriverConfig.Options containing type: "none", o: "bind" is treated as a bind mount by the Docker daemon, bypassing restrictions.
An attacker can use these flaws to gain elevated Linux capabilities (e.g., CAP SYS ADMIN), disable syscall filtering or AppArmor, and create bind mounts of host paths (such as /), potentially achieving root access on the Swarm manager host.
Recommendations Update Portainer Community Edition versions 2.33.0 through 2.33.7 to 2.33.8. Update Portainer Community Edition versions 2.39.0 through 2.39.1 to 2.39.2. Update Portainer Community Edition versions 2.40.0 through 2.40.x to 2.41.0. Upgrade all versions prior to 2.33.0 to a supported LTS branch. As a temporary workaround, revoke Swarm endpoint access for non-admin users via Portainer RBAC. Segregate manager and worker nodes using placement constraints to prevent user workloads from running on manager nodes. Block the creation of local-driver volumes that use type: none and o: bind on untrusted endpoints via a daemon-side allowlist.

Exploit

Fix

Missing Authorization

Weakness Enumeration

Related Identifiers

CVE-2026-44849
GHSA-5FXQ-QCF3-244W

Affected Products

Github.Com/Portainer/Portainer
Portainer