Skip to main content

Synopsis

Read-only views over the vulnerabilities found in the images your workloads run. Findings come from Trivy Operator reports and, when the opt-in supplychain matcher is enabled, from kguardian’s own Grype matcher, which matches SBOMs. kguardian never blocks or applies anything.
For one image’s findings, or a CI gate, use images vulns.
Unknown is not safe. Images no source has scanned are unknown and do not appear here, so an empty list is not “no vulnerabilities”. kguardian cannot yet tell which packages a workload loads: “in use” is unknown, so treat every finding as potentially reachable.

vulns list

Calls GET /vulnerabilities: every vulnerability affecting an inventory image, grouped by id, most severe first. It reads a summary the broker rebuilds every few minutes; when it was computed is printed on stderr.
Counts are distinct images and workloads, so two sources reporting the same CVE never count twice. KEV unknown means no source said either way. JOIN is the weakest match behind the counts: workload_tag means some are by tag only, and the tag may have moved since the scan.

vulns exposure

Calls GET /vulnerabilities/{id}/exposure: the inventory images a vulnerability affects, the workloads running (or having run) them, and each workload’s observed ingress over the window.
EXPOSED is observed traffic, not reachability analysis: FIXED lists every fixed version the sources give, in source order. A vulnerability no inventory image with data lists exits non-zero with a message saying that is not proof the cluster is unaffected. -o json and -o yaml print the broker’s response unchanged. Global flags (--kubeconfig, --context, --broker-namespace, --broker-service, --broker-token-file, --debug) are listed in the CLI overview. A 401 or 403 prints a hint: these commands need a token with the read scope.

Examples