Portainer Business Edition Updates & Release Notes

Follow

4 updates curated from 1 source by the Releasebot Team. Last updated: Oct 12, 2026

Get this feed:
  • Oct 8, 2026
    • Date parsed from source:
      Oct 8, 2026
    • First seen by Releasebot:
      Oct 12, 2026
    Portainer logo

    Portainer Business Edition by Portainer

    Release 2.45.2 LTS

    Portainer Business Edition adds scoped shared Git credentials, scoped kubeconfigs, richer Kubernetes node columns, and tighter security controls for backups, namespace access, and bind mounts. It also improves add-ons, GitOps, Docker cleanup, and fixes multiple dashboard and stack deployment issues.

    Breaking Changes

    POST and PUT /api/cloud/gitcredentials now require urlPattern: one or more comma-separated glob patterns (for example github.com/portainer/) that a repository URL must match before the shared credential is used. * matches a single path segment; or scheme:// alone matches everything. Requests without urlPattern return 400. Credentials saved before upgrading keep working against any URL until they are edited; administrators should set a pattern on each existing shared credential

    Known Issues

    On Async Edge environments, an invalid update schedule date can be displayed when browsing a snapshot

    kubectl port-forward fails with Portainer kubeconfig in some configurations

    Known issues with Podman

    Support for only CentOS 9, Podman 5 rootful

    Auto onboarding a Podman environment defaults to “Standard” and not “Podman”

    It's not possible to add Podman environments via socket, when running a Portainer server on Docker (and vice versa)

    Known issues with Talos clusters managed by Omni (BE only)

    Loading Omni specific information in the Cluster Details view and configuring an existing Talos cluster is currently restricted to Portainer Admins. Environment Admins will get a forbidden error when attempting to do this. This only applies to Omni configuration, and does not affect authentication for any other functionality in the cluster

    New in this release

    Security

    Fixed a bypass of the "Hide bind mounts for non-administrators" setting. When it is enabled, Compose files deployed by non-administrators can no longer reference host files outside the stack directory (for example in configs, secrets or env_file), and include is disabled for them

    Fixed a denied, failed or dry-run Kubernetes namespace deletion still removing Portainer's namespace access policies, stack records and registry bindings. These records are now removed only after Kubernetes accepts the deletion

    Fixed in-cluster HTTPS connections to the Kubernetes API server skipping TLS certificate verification during stack deploy and removal, on both the server and the agent

    Scoped shared Git credentials to URL patterns, so a credential is only sent to repository URLs that match its pattern. Previously any user could point a source at any saved credential and send it to any host

    Fixed revoked namespace access staying in effect. Removing a user's or team's access through namespace access settings, Kubernetes RBAC policies or team membership changes now applies immediately. Previously cached Kubernetes clients kept read access for up to 8 hours, and the user's service account could keep write access until restart

    Restricted kubeconfig tokens to Kubernetes API calls, so they can no longer be used against the rest of the Portainer API

    Fixed the LDAP Kerberos service account password being returned in plaintext by GET /api/settings

    Enforced the FIPS mode restriction on custom S3-compatible hosts on the server, for saving S3 backup settings, running a backup and restoring from S3, instead of relying on the UI alone

    Added a FIPS mode warning to Azure Blob backup settings that ensuring the endpoint is FIPS compliant is the user's responsibility. Restoring from Azure with an auth method FIPS mode disallows is now rejected up front, and a scheduled Azure backup that FIPS mode makes invalid now logs why it isn't running

    Features

    Added a Node group column to the Kubernetes cluster node list for clusters using EKS, GKE, AKS, Karpenter or kops node pools, plus optional Instance type, Labels and Taints columns that can be turned on from the column menu

    Added an API to issue, inspect and revoke scoped kubeconfigs (/api/kubernetes/{id}/scoped_kubeconfig). A scoped kubeconfig is read-only, limited to chosen namespaces within the caller's own access, expires after at most 7 days, and includes secrets only when requested. Its use is recorded in the activity log as (via scoped kubeconfig )

    Added * and ? wildcards to excluded images in Docker image cleanup policies. The excluded-image badge now reads "Docker Hub or local", since names without a registry host also match locally built images

    Added a link from add-on management to the add-on requirements FAQ, and made its warnings and status messages clearer. A failed uninstall now shows as "Uninstall failed" instead of "Upgrade failed" and can be retried

    Added automatic recovery when the cluster rejects a cached Kubernetes service account token: Portainer drops the cached token and retries the request once

    Bug Fixes

    Fixed the GitOps Sources page failing to load with "Object not found inside the database (bucket=workflows)" when a stack referenced a deleted workflow. Orphaned references are now skipped, and deleting a stack now unlinks it from its workflow in the same save

    Fixed deleting a Kubernetes stack with a namespace leaving behind objects whose manifest names no namespace

    Fixed Kubernetes Edge agents retrying removal of workload-less Edge stacks forever, which delayed new deployments and check-ins

    Fix the issue where the Docker dashboard volume count excludes volumes that restricted users have access to

    Fix the issue where the Async Edge dashboard includes container statistics for resources that Standard users cannot access

    Fix the issue where Compose stack undeploy operations do not respect the overall deployment timeout or cancellation context

    Fixed the default Unassigned environment group being renameable. It is now read-only, and a group that was already renamed can be reset to "Unassigned"

    Fixed an issue where Git-based Helm edge stacks ignored their values files. Existing stacks will apply their configured values files on the next deployment

    Fixed the Helm upgrade modal's chart source dropdown opening behind the modal

    Fixed the date range picker in container logs and the Activity Logs filter opening behind the sidebar

    Fixed the GitOps workflow wizard advising users to create an Edge group when groups exist but none match the deployment type. It now distinguishes "no Edge groups exist" from "Edge groups exist but none match this deployment type"

    Fixed installed add-ons failing to launch after switching to a catalog that no longer lists them. An add-on that can't be reached now shows an "Add-on unavailable" page instead of sending restricted users into a redirect loop

    Fixed the add-on catalog serving a cached copy for up to 10 minutes after an administrator saved a new catalog URL or pressed refresh or Retry. It now reloads right away

    Original source
  • Sep 17, 2026
    • Date parsed from source:
      Sep 17, 2026
    • First seen by Releasebot:
      Sep 17, 2026
    Portainer logo

    Portainer Business Edition by Portainer

    Release 2.45.1 LTS

    Portainer Business Edition improves security, FIPS support, and day-to-day reliability with hardened outbound requests, updated dependencies, and clearer registry and Edge handling. This release also simplifies environment views, fixes several UI and upgrade bugs, and restores alert and add-on workflows.

    Known Issues

    On Async Edge environments, an invalid update schedule date can be displayed when browsing a snapshot

    kubectl port-forward fails with Portainer kubeconfig in some configurations

    Known issues with Podman

    Support for only CentOS 9, Podman 5 rootful

    Auto onboarding a Podman environment defaults to “Standard” and not “Podman”

    It's not possible to add Podman environments via socket, when running a Portainer server on Docker (and vice versa)

    Known issues with Talos clusters managed by Omni (BE only)

    Loading Omni specific information in the Cluster Details view and configuring an existing Talos cluster is currently restricted to Portainer Admins. Environment Admins will get a forbidden error when attempting to do this. This only applies to Omni configuration, and does not affect authentication for any other functionality in the cluster

    New in this release

    Hardened outbound requests against SSRF. Helm chart resolution and Git HTTP/HTTPS operations now go through the SSRF-aware transport, and the static rules that enforce this now match by type rather than by import alias, so an aliased import can no longer slip past them

    Certificate-based authentication for Azure Blob backups is now disabled in FIPS mode

    Added build-time static analysis that catches FIPS violations before they ship

    Removed unused non-FIPS code paths from FIPS builds

    Updated golang.org/x/mod to 0.40.0, fixing CVE-2026-56865 and CVE-2026-56864

    Updated golang.org/x/crypto to 0.56.0, fixing CVE-2026-56854 (High), CVE-2026-78662 and CVE-2026-56855

    Updated google.golang.org/grpc to 1.83.2, fixing CVE-2026-84304 (High, 8.7)

    Updated kubectl in the kubectl shell image to v1.37.0, which removes golang.org/x/net 0.49.0 entirely — fixing CVE-2026-39821 (Critical) along with 2 High and 5 Medium findings

    Updated helm in the kubectl shell image to v4.2.4, taking golang.org/x/net to 0.56.0 and fixing CVE-2026-46600 (High)

    Upgraded the Alpine packages in the kubectl shell image, taking openssl / libssl3 to 3.5.8-r0, libcurl to 8.22.0-r0 and jq to 1.8.2-r0. Clears 2 Critical findings (CVE-2026-63073 and CVE-2026-75803) plus 9 High, 11 Medium and 1 Low

    Simplified the stat cards on the environment list

    Renamed the GitOps “Edit git settings” button to “Edit stack settings”, which reflects what it actually changes

    The --secret-key-name help text now documents the BE secret path as well as the CE one

    Fixed the Swarm network list failing to render, showing “Cannot read properties of undefined (reading 'NodeRole')” and staying empty even after a network was created

    Fixed the node details Applications section listing pods that are not running on that node

    Fixed a registry personal access token continuing to be used after it was changed. The Helm registry cache is now flushed when credentials change

    Fixed the Edge Updater status page failing to load because of a broken status sort

    Added an info box to Edge stacks explaining that the GitOps source polling interval does not apply to them

    Fixed the initial setup screen leaving the S3 host field enabled in FIPS mode

    Fixed automatic Edge environment creation bypassing the FIPS environment gate

    FIPS-blocked registry types now return consistent HTTP status codes instead of differing by registry type

    Updated github.com/google/cel-go to 0.30.0, fixing GHSA-gcjh-h69q-9w9g

    Fixed alert notifications not being sent after an upgrade from 2.40, caused by a stale default receiver breaking Alertmanager config sync

    Fixed add-on installation failing when no local Kubernetes environment is connected

    Original source
  • All of your release notes in one feed

    Join Releasebot and get updates from Portainer and hundreds of other software products.

    Create account
  • Aug 27, 2026
    • Date parsed from source:
      Aug 27, 2026
    • First seen by Releasebot:
      Sep 2, 2026
    Portainer logo

    Portainer Business Edition by Portainer

    Release 2.45.0 LTS

    Portainer Business Edition releases major Kubernetes, Edge, GitOps and add-on updates, with new APIs, improved workflow and workflow editing, dynamic add-on delivery, stronger multi-fleet scaling, and a broad round of security hardening and bug fixes across Docker, Swarm, Podman and Kubernetes.

    Known Issues

    On Async Edge environments, an invalid update schedule date can be displayed when browsing a snapshot

    kubectl port-forward fails with Portainer kubeconfig in some configurations

    Known issues with Podman

    Support for only CentOS 9, Podman 5 rootful

    Auto onboarding a Podman environment defaults to “Standard” and not “Podman”

    It's not possible to add Podman environments via socket, when running a Portainer server on Docker (and vice versa)

    Known issues with Talos clusters managed by Omni (BE only)

    Loading Omni specific information in the Cluster Details view and configuring an existing Talos cluster is currently restricted to Portainer Admins. Environment Admins will get a forbidden error when attempting to do this. This only applies to Omni configuration, and does not affect authentication for any other functionality in the cluster

    New in this release

    New and improved features

    Added advanced Kubernetes node drain options with agent failover

    Added native Portainer APIs for writing Kubernetes secrets, configmaps, deployments and persistent volume claims, replacing direct kube-apiserver proxy calls

    Added a generic Kubernetes manifest dry-run API

    Edge Compute settings can now be configured during initial setup and via cli flags

    Authentication events now record the real client IP from X-Forwarded-For when the request comes through a trusted proxy

    The namespace YAML tab now shows every resource quota in the namespace

    Added GetCharts() support to the async Edge agent, so chart data syncs on agent startup

    Edge agent connectivity checks now report progress while probing, and wait longer before failing

    Creating a git source now skips the source type selection step

    The source form now explains git polling versus webhook triggers, and exposes the polling interval setting that was missing from the UI

    Removed the redundant single-tab handle from the workflow details view

    Reworded the registry creation tooltip to make the default behaviour obvious

    Clarified that Portainer supports Podman through its Docker-compatible API only

    Reworked the datastore, Edge polling and activity-logging hot paths to support large fleets. Simulated against 500,000 Edge devices through deployment, redeployment and steady state

    Added an Edit Workflow wizard so GitOps workflows can be changed after creation

    Added a Scale action for the Operator and Namespace Operator roles

    Upgraded the embedded OneUptime Kubernetes agent chart to 11.7.1, which decouples node metrics collection from logs mode

    Improve deployment type detection in GitOps workflows by inferring the deployment type from file content instead of relying on the filename alone

    When Edge Compute isn’t configured, workflow creation now blocks with a clear path to enable it

    Removed the “coming soon” placeholders from GitOps force sync and pause

    Added a kill switch for hung Omni cluster provisioning requests

    Updated the Omni client SDK to v1.8.2

    The add-on catalog is now fetched dynamically, so new add-ons no longer require a Portainer patch release

    Add-ons can now be installed from a private registry, which supports airgapped deployments

    Add-on access can now be denied per team during install. The add-on list appears in team create and edit, and a notification fires when team access changes

    Added a dedicated view for users with no active add-ons, so team deny rules can no longer soft-lock someone out of Portainer

    Added an admin-only settings store for add-ons

    Added a machine authentication token and API for the add-on store

    Add-ons no longer require a local Kubernetes environment to be present

    The add-on store now surfaces an invalid credential and offers a repair action

    The add-on image tag can now be typed in rather than picked from the list

    The last viewed add-on is now remembered across logins for multi-portal setups

    Add-on list and detail views now link to the official documentation

    Reworded the add-on team access toggle to make clear it applies to add-ons only

    Changed the add-on icon to a puzzle piece

    Security improvements

    Fixed a critical Docker proxy authorization bypass. Unrecognised API version prefixes like /v1.47.0/ or /v01.47/ skipped access control entirely, letting non-admin users reach the Docker API directly

    Closed a remaining gap in the CVE-2026-44849 (GHSA-5fxq-qcf3-244w) fix and broadened bind-mount restrictions for non-admin users, now including Compose and Swarm stack deployments

    Single-namespace Kubernetes endpoints now check the caller’s namespace authorization instead of running as admin

    Read-only and Helpdesk users can no longer view Kubernetes secret data

    Standard users can no longer manage registry access

    Kubernetes authorization denials now return HTTP 403 instead of 500

    Fixed a Kubernetes shell authorization flaw. Caller-supplied query parameters could override the server's pod target, letting a standard user run commands in any pod on Agent-managed Kubernetes environments

    Updated the Go toolchain to 1.26.6, fixing CVE-2026-39821 (Critical, 9.6), an IDNA validation bypass of hostname-based access controls, along with CVE-2026-42505, CVE-2026-39822, CVE-2026-56862, CVE-2026-56860, CVE-2026-56859, CVE-2026-56858, CVE-2026-56853, CVE-2026-46600 and CVE-2026-33818

    Updated oras.land/oras-go/v2 to 2.6.2, fixing CVE-2026-50163

    Updated github.com/go-git/go-git/v5 to 5.19.2, fixing CVE-2026-71556 and CVE-2026-71557

    Updated go.opentelemetry.io/otel to 1.44.0, fixing CVE-2026-41178

    Updated github.com/klauspost/compress to 1.18.7, fixing GHSA-259r-337f-4rfw

    Restored admin-only access to the /users, /teams, and /roles list endpoints, which had regressed in 2.39.0 to allow any authenticated user to enumerate non-administrator accounts, teams and the full role catalogue. Together with the team-membership fix shipped in 2.44.0, this closes the directory-enumeration surface for non-admin users

    portainer-helpdesk and portainer-cluster-operator now use namespace-scoped RoleBindings instead of ClusterRoleBindings, so namespaced resources no longer leak cross-namespace access

    Removed namespace-scoped resources (endpoints, metrics.k8s.io pods and namespaces, CNPG clusters) from portainer-basic, which is bound cluster-wide. Namespaced reads now come from portainer-view, bound per assigned namespace

    Namespace Operators now are only given view RoleBindings in namespaces assigned to them

    Operator and Helpdesk roles no longer see system namespaces in list results

    Stale namespace RoleBindings are now cleared when a team loses access

    Fix the issue where Kubernetes RoleBindings remain stale after a user is removed from a team with environment access granted through an environment group

    Namespace input for registry and RBAC policies is now sanitized and validated

    Creating, editing, deleting and connection-testing GitOps git sources is now recorded in the user activity log

    Creating and updating a policy is now recorded in the user activity log

    Updated helm.sh/helm/v3 to 3.20.2, fixing CVE-2026-35206

    Updated github.com/google/cel-go to 0.29.0, fixing GHSA-gcjh-h69q-9w9g

    Upgraded libcurl to 8.21.0-r0 in the kubectl-shell image to address the following CVEs: CVE-2026-11856, CVE-2026-10536, CVE-2026-11564, CVE-2026-12064, CVE-2026-11586, CVE-2026-11352, CVE-2026-9547, CVE-2026-9546, CVE-2026-9545, CVE-2026-9080, CVE-2026-9079, CVE-2026-8932, CVE-2026-8927, CVE-2026-8926, CVE-2026-8925, CVE-2026-8924, CVE-2026-8458, and CVE-2026-8286.

    Upgraded c-ares to 1.34.8-r0 in the kubectl-shell image to address CVE-2026-33630

    Bug fixes

    Fixed a deadlock when an API client updated a Kubernetes stack without supplying stackName

    Fixed a data race in the Agent cluster fan-out that misrouted requests, producing duplicate and missing resources in aggregated lists

    Fixed Edge Agent containers failing to start on Swarm because of a closed-channel panic

    Fixed the compose-unpacker image failing to pull from an authenticated private registry

    Fixed GitOps sources becoming undeletable when orphaned workflow records remained, and stopped the scheduler polling deleted stacks

    Fix the issue where a user's direct environment access is incorrectly removed when a team they belong to is deleted

    Aborting a request mid-flight no longer logs a panic. ErrAbortHandler is now passed through to net/http instead of being caught by the panic logger

    Fixed the Kubernetes proxy breaking after a service account token rotation. Local environments now reload the admin token every 30 seconds

    Fixed login hanging on the “Authentication in progress” spinner when RETURN_URL pointed at the same path

    Fixed “Invalid Swarm ID” errors when managing Swarm environments

    Fix the issue where a Swarm stack retains a stale error status after the underlying deployment error has been resolved

    Fixed volume browsing on rootless Docker, which now falls back to the default volume path when the mountpoint isn’t reachable

    Fixed kubectl port-forward failing against older Kubernetes clusters when using a Portainer kubeconfig

    Fixed node shell bash detection (hostHasBash) never working for agent and Edge environments

    Fixed deleted environments and Edge groups leaving stale references in workflow artifact targets

    Restored the missing option to assign users to an environment group

    Fixed the Docker build proxy leaving multipart upload temp files behind after every successful image build

    Helm applications are now identified by annotations as well as labels, so deployments deployed using helm dry-run manifests aren’t falsely identified as helm applications

    The Applications list no longer shows unreachable ClusterIP addresses under Published URLs

    Fixed volume sizes displaying and saving incorrectly by converting properly between base-2 and base-10 units

    Updated internal and external documentation links that were redirecting to deprecated pages

    Fixed the node drain status label being user-editable and undeleteable

    Original source
  • Aug 13, 2026
    • Date parsed from source:
      Aug 13, 2026
    • First seen by Releasebot:
      Oct 13, 2026
    Portainer logo

    Portainer Business Edition by Portainer

    Release 2.39.6 LTS

    Portainer Business Edition improves reliability across Kubernetes, Swarm, Docker, and Git stack workflows, while strengthening security with SSRF protections, safer access controls, and updates addressing multiple vulnerabilities. The release also documents known limitations for Edge, Podman, and Omni-managed Talos environments.

    Known Issues

    • On Async Edge environments, an invalid update schedule date can be displayed when browsing a snapshot
    • kubectl port-forward fails with Portainer kubeconfig in some configurations

    Known issues with Podman

    • Support for only CentOS 9, Podman 5 rootful
    • Auto onboarding a Podman environment defaults to “Standard” and not “Podman”
    • It's not possible to add Podman environments via socket, when running a Portainer server on Docker (and vice versa)

    Known issues with Talos clusters managed by Omni (BE only)

    Loading Omni specific information in the Cluster Details view and configuring an existing Talos cluster is currently restricted to Portainer Admins. Environment Admins will get a forbidden error when attempting to do this. This only applies to Omni configuration, and does not affect authentication for any other functionality in the cluster

    New in this release

    Bug Fixes

    • Fixed a user's direct environment access being incorrectly removed when a team they belonged to was deleted
    • Fixed multiple "Cannot read properties of undefined (reading 'message')" error toasts appearing on Kubernetes application pages when an API call failed without a response (e.g. while pods are restarting after a redeploy)
    • Fixed an "Invalid Swarm ID" / 503 error when creating a stack from a Swarm worker node
    • Fixed Kubernetes Ingress service ports always showing 0
    • Fixed kubectl port-forward failing with "error upgrading connection" against Agent 2.35+ on older Kubernetes clusters
    • Fixed "This node is not a swarm manager" errors when starting/stopping a Swarm stack from within the swarm itself
    • Fixed Docker image builds failing with unauthorized against private registries referenced in a Dockerfile's FROM line (both the UI's "Build a new image" flow and the /docker/build API proxy)
    • Fixed Swarm stack deployments failing to re-pull private Docker Hub images on a forced re-pull, even with valid registry credentials configured
    • Fixed request-handler panics being logged as unexpected crashes when a client disconnected mid-request (e.g. a long-poll on a Kubernetes Jobs watch)
    • Fixed the "Always clone git repository" toggle incorrectly rendering (disabled) on the Edit form for standalone Docker stacks with a Git source

    Security improvements

    • Implemented an SSRF protection mechanism with a configurable allow-list in settings (off / audit / enforce modes)
    • Changed a default setting to enforce server-side EdgeID on first connection
    • Fixed path traversal in the swarm compose deployer, where configs/secrets file paths escaped the project root
    • Fixed the Docker proxy resolving RBAC from a cached endpoint snapshot taken when the proxy was first created
    • Upgraded the Go toolchain from 1.25.11 to 1.25.12 to address the following CVEs:
      • CVE-2026-42505
      • CVE-2026-39822
    • Upgraded github.com/go-git/go-git/v5 to 5.19.2 to address the following CVEs:
      • CVE-2026-71556
      • CVE-2026-71557
    • Upgraded oras.land/oras-go/v2 to 2.6.2 to address CVE-2026-50163
    • Upgraded go.opentelemetry.io/otel to 1.44.0 to address CVE-2026-41178
    • Upgraded github.com/klauspost/compress to 1.18.7 to address GHSA-259r-337f-4rfw
    • Upgraded golang.org/x/net to 0.56.0 and golang.org/x/text to 0.39.0 in the Portainer updater to address the following CVEs:
      • CVE-2026-46600
      • CVE-2026-56852
    • Upgraded github.com/containerd/containerd (v1) to 1.7.33 to address the following CVEs:
      • CVE-2026-53488
      • CVE-2026-47262
    • Upgraded google.golang.org/grpc to 1.82.1 to address GHSA-hrxh-6v49-42gf
    Original source
  • Similar to Portainer Business Edition with recent updates:

This is the end. You've seen all the release notes in this feed!

Releasebot

Curated by the Releasebot team

Releasebot is an aggregator of official product update announcements from hundreds of software vendors and thousands of sources.

Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.