
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.
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-kubernetesrepo 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.modpointed 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
Related in Supply Chain


