Safeguard
Developer Tools•

Are Helm plugins safe to install? What to check first

A Helm plugin is an executable that runs with your permissions and can be written in any language. Here is how to vet one before it joins your toolchain.

Safeguard Security Team
4 min read

Treat a Helm plugin like any program you download and run. It is not part of the Helm codebase, it can be written in any language, and it runs with your user's permissions, including access to your kubeconfig. Install plugins from sources you have reviewed, pin the version, and keep the list short.

What a plugin is

The Helm documentation describes a plugin as a tool reached through the helm command that is not part of the built-in Helm codebase. Plugins live in the directory shown by helm env as HELM_PLUGINS. They can be added and removed without touching Helm itself, and they can be written in any programming language.

Each plugin has a plugin.yaml file. Among its fields are the command to run and optional lifecycle commands for install, update and delete. So installing a plugin can execute commands, and so can running it later.

How plugins get installed

The install command accepts a local path or a URL of a remote version control repository. When you install from version control you can name a version. You can also unpack a tarball into the plugins directory by hand, or install a tarball straight from a URL.

Each route has a different trust question:

RouteWhat you are trusting
Local pathWhoever wrote the files in that folder
Repository URL, no versionThe tip of the default branch today
Repository URL with a versionThe ref you named, if it is not moved
Tarball URLThe host serving the file, and its integrity

Without a version, a plugin install takes whatever the repository serves at that moment. That is the same problem as tracking HEAD in a deployment tool.

A short vetting checklist

  1. Read plugin.yaml first. Note the command, and every install, update and delete command.
  2. Read the entry point script or binary source. If it downloads more code at run time, find out from where.
  3. Check the repository for recent activity, a clear owner and a way to report problems.
  4. Install a named version, not the default branch.
  5. Record the plugin name, version and source in your repository, next to your CI configuration.
  6. Run it first on a machine or container that has no production credentials.

The last point matters because plugins often work with cluster access by design. A diff or secrets plugin legitimately needs to read cluster data, so assume a malicious one could read it too.

Plugins in CI

CI is where plugin risk compounds. A plugin installed on a shared runner inherits whatever credentials the job holds. Prefer a pinned container image that already contains the exact plugin versions you approved, rather than installing at the start of every job. Then a change to the toolchain is a reviewed change to an image definition.

Also decide who may add a plugin. If any developer can add an install line to a pipeline, your toolchain is effectively open to anyone with write access.

Where a scanner fits

Plugins rarely appear in application dependency files, so they are easy to miss in an inventory. Keep them in a documented list, and use dependency scanning and SBOM generation, such as Safeguard offers, for the images and packages your pipelines build. Policy gates on pull requests can then flag a pipeline change that adds a new tool. A free scan is at gold.safeguard.sh/scan.

Quick check

Does Helm sandbox plugins?

The documentation does not describe a sandbox for the legacy plugin model. A plugin is an executable launched through helm, so assume it runs with your permissions.

Is a plugin the same as a chart?

No. A chart is a package of Kubernetes templates. A plugin is a tool that extends the helm command, and the documentation says it is only similar to a chart in layout.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.