Skip to content

Back to the catalog

Securing the Kubernetes Supply Chain: Introducing WizOS Helm Charts
wiz.ioarticle

Securing the Kubernetes Supply Chain: Introducing WizOS Helm Charts

Wiz Research examined the source repositories and CI/CD pipelines behind 1,500 popular Helm charts on Artifact Hub (mapping to 814 unique GitHub repos) and found 61 repos (7.5%) with confirmed supply-chain risk, including 20 charts with CI/CD workflow weaknesses and 25 depending on unmaintained/archived upstream projects. Two disclosed findings illustrate the risk classes: KubeView's go.mod referenced a Go module under a GitHub username that didn't exist, making it hijackable by anyone who registered the name, and Meilisearch's Helm chart repo had a GitHub Actions workflow triggered by PR comments that injected the commenter's branch name into a shell command while skipping author-association checks, letting any GitHub user run commands with a bot token that had push access. The post then pivots to promoting WizOS Helm Charts, Wiz's hardened/signed/CVE-scanned chart catalog built to close these gaps.

TL;DR Wiz Research found supply-chain flaws (unclaimed Go module, PWN-Request-style script injection) in 7.5% of repos behind 1,500 popular Helm charts, then pitches its own hardened WizOS Helm Charts as the fix.
Document

What it is

A Wiz Research supply-chain audit of the source repos behind 1,500 popular Artifact Hub Helm charts, packaged with a promotion for WizOS Helm Charts. The summary already carries the top-line numbers and the two disclosed findings' mechanisms; what it omits are the pattern names, the fix boundary, and the self-check these imply.

How it works — the two named patterns

The findings generalize into two classes an engineer can audit for in their own charts, regardless of WizOS:

  • PWN Request. A GitHub Actions workflow triggered by an outsider's PR or issue comment checks out and runs the outsider's fork code with access to repo secrets / a push-capable token. Meilisearch's meilisearch-kubernetes repo hit this, compounded by script injection (fork branch name placed directly into a shell command) and a missing author-association check. Net result: any GitHub user could run commands with push access.
  • Unowned dependency. A manifest references a namespace/account that doesn't exist, so anyone can register it and publish malicious code into builds. KubeView's go.mod pointed at a nonexistent GitHub username.

Affected / fix boundary

  • KubeView: dependency removed in version 2.2.1 (summary does not give this). Upgrade past 2.2.0.
  • Meilisearch: workflow fixed; both fixed "within days."
  • Scope of the study: 61/814 repos (7.5%) had confirmed risk; 9 rated critical or high.

What to do

For charts you run, look one layer down at the producing repo: grep workflows for issue_comment/pull_request_target triggers that check out fork code with secrets and lack author_association gating, and check dependency manifests for nonexistent namespaces. The chart itself looks clean in both cases — scanning your own code won't surface either.

Caveats

Everything past the findings is vendor promotion (WizOS hardened/signed charts, Secure Architecture Opportunities page, a 7-day critical / 14-day high-medium CVE SLA). No detection tooling or queries are provided.

Organisations named here

  • author association check
  • Shay Berkovich
  • Wiz Research

Technologies named here

  • KubeView
  • WizOS Helm Charts
  • Meilisearch
  • WizOS base images
  • Secure Architecture Opportunities
  • Helm charts on Artifact Hub
  • Secured Image Catalog
  • Argo Rollouts
  • Sealed Secrets
  • KEDA
  • Grafana Loki and Alloy
  • Redis Exporter
  • cosign
  • OpenSCAP
  • Valkey Bundle
  • Redis Operator
  • OpenSSH Server
  • Ansible
  • Blue Agent
  • Kubernetes
  • Helm
  • GitHub Actions
  • Go
  • Wiz

Techniques named here

  • Pwn Request
  • Script injection via branch name
  • Dependency/namespace hijacking
  • Image tag mutability risk
  • Script injection