Helm Chart & Kubernetes Security Monitor (Artifact Hub) avatar

Helm Chart & Kubernetes Security Monitor (Artifact Hub)

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Helm Chart & Kubernetes Security Monitor (Artifact Hub)

Helm Chart & Kubernetes Security Monitor (Artifact Hub)

Audit the Helm charts and Kubernetes packages you run: container-image CVEs, signatures, deprecation and abandonment — plus an alert when a chart you already trust picks up a critical vulnerability or loses its signature.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

Sasha Ebashu

Sasha Ebashu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Helm Chart & Kubernetes Package Security Monitor

Your cluster will not tell you that the chart you installed last year was deprecated in March, lost its signature in June, and now ships images with seven critical CVEs. Artifact Hub knows all three. This Actor reads it for the packages you run, scores the exposure, and tells you when it moves.

Built on Artifact Hub's public API. No key, no login, no scraping.

The four ways a chart goes bad quietly

SignalWhy it matters
Container CVEsArtifact Hub runs Trivy against the images a chart deploys. vulnerabilitiesCritical / High / Medium are those counts, and vulnerabilities lists the CVEs with the version that fixes each one.
DeprecationA deprecated chart never errors. It simply stops receiving fixes. 381 of the 18,056 Helm charts on the Hub are deprecated.
Signaturesigned and signatures (cosign, prov). Of the 60 most-starred charts, only 30 are signed. A chart that loses its signature is its own alert.
AbandonmentdaysSinceRelease and isStale. One chart in the top 60 last shipped 1,365 days ago.

Read this before you trust a zero

"Not scanned" is not "no vulnerabilities." 28 of the 100 most-starred Helm charts have no security report at all. Reporting 0 critical for those would tell you an unexamined chart is clean, so this Actor does not: counts stay null, securityScanned is false, and securityScanReason says which of the three causes applies — never scanned, the publisher disabled scanning, or every image was excluded from scanning by the publisher (an all-zero report that examined nothing).

An unscanned package therefore scores worse than a scanned clean one. Unknown is exposure.

Risk scoring, and why you can defend the number

The formula is published so you can argue with it, or recompute it with your own weights.

SignalPoints
Critical vulnerabilities12 each, capped at 40
High vulnerabilities2 each, capped at 25
Medium vulnerabilities0.5 each, capped at 8
Never scanned18
Marked deprecated25
Not signed8
Publisher not verified5
No release in over a year15 (7 past half that)
Last scan older than 30 days5

low under 20 · medium 20–49 · high 50–79 · critical 80+. riskReasons spells out every component that fired.

A high score is not an accusation. A chart deploying seven images has more surface than one deploying a single distroless binary, and a busy chart with an old base image is not necessarily exploitable in your configuration. The score measures exposure; you supply the judgement.

Monitor mode

Run it on a schedule against the charts you deploy. The second run labels what moved:

changeTypeMeans
deprecatedThe publisher just marked it deprecated — plan a migration
new_critical_vulnerabilitiesCritical count went up, with criticalDelta
signature_lostIt was signed before and is not now
security_scan_lostIt had a report and no longer does — you have gone blind, not clean
vulnerabilities_upHigh-severity count rose
new_versionAn upgrade is available
vulnerabilities_down / security_scan_addedIt got better
no_longer_listedWithdrawn from Artifact Hub entirely
left_your_filterStill published, but no longer matches this run's filters
new, unchangedFirst sighting / nothing moved

Two things this deliberately does not do:

  • It will not report a package as gone unless the sweep actually covered your whole scope. If a request failed, or the run stopped at your own maxItems, disappearances are suppressed — a partial sweep must never announce everything it did not reach as deleted.
  • It will not call a vulnerability count "improved" when the comparison is meaningless. A chart that was scanned last week and is unscanned today has not dropped to zero, and is reported as security_scan_lost instead.

Input

FieldWhat it does
PackagesWhat you actually run. An Artifact Hub URL, kind/repository/name, or repository/name (assumed Helm).
Search query / Kind / Repositories / OrganizationsDiscover packages instead of naming them.
Only deprecated / unsigned / with vulnerabilities / never scannedAudit filters. They run inside the sweep, so asking for 20 deprecated charts keeps paging until it has 20 — not until it has read 20 charts.
Include the vulnerability listFull Trivy detail per package: CVE, affected package, installed version, fixed version, CVSS. One extra request per scanned package.
Include release historyTotal releases, previous version, releases in the last 90 days, first release date.
Treat as abandoned after (days)Your definition of stale, not a hidden constant.
Monitor mode / Output only changesThe alert behaviour above.

Notes & limits

Properties of the source, measured rather than assumed:

  • deprecated=true on the Hub's search API means "include deprecated", not "only deprecated". With it set, a Helm search returns 18,056 rows instead of 17,675 — the extra 381 are the deprecated ones. Reading that total as the deprecated count would be wrong by 47×. This Actor filters deprecation itself.
  • The kind of a package lives on its repository, not on the package, in search results. A reader that only looks at the package object gets no kind, and therefore no link.
  • The package detail endpoint returns stars: null even for a package with hundreds of stars — only search carries them. Packages you name by hand therefore have unknown stars (reported as null, and a minimum-stars filter will not silently delete them); subscriptions is populated there instead.
  • Artifact Hub is behind a burst limiter that answers 429 with an empty body and no Retry-After. The Actor backs off and retries; four parallel requests is comfortable.
  • Search pages cap at 60 results, and the end of a listing is an empty page — never a short one.
  • The Actor honours your Maximum cost per run and stops when the cap is reached.