Vulnerability findings
Vulnerability findings answer one question about every image your clusters run: does it have known vulnerabilities? The Vulnerability Scanning add-on scans running images inside your cluster and reports each CVE by severity (Critical, High, Medium, Low and Unknown), grouped by application. Open an application to see every CVE, its package, and whether a fix is published.
When you need it
- Which applications carry critical vulnerabilities, worst first, across a cluster.
- What to fix first: the CVEs with a published package fix, and the images they are in.
- Evidence for a security review: the current posture of every application, with what was and was not scanned.
Before you start
- The Vulnerability Scanning add-on on the cluster. Public images scan with no setup; images in a private registry need registry access.
In the console
-
Open a cluster from the cluster list and select Security: severity totals, and every application and add-on, worst first. The cluster's Overview carries the same summary as a tile.
-
Open an application or model and select Security: its severity counts, then each CVE grouped by image, with Package, Vulnerability, Severity, Installed, Fixed and Fix available. Filter by package, CVE or severity, or tick Fixable only.
Open zoom view -
Select a CVE to open its advisory.
You should see
Counts within about a minute of the first scan finishing, then a fresh summary after each rescan (daily by default). An application with nothing reported yet reads No scan result yet, never zero.
How to read the findings
- Coverage first. AstroPulse knows every application and add-on, so each is listed even with no result. It does not know how many workloads each one runs, so it can't promise a count is complete. Zero criticals is a real result, but only for what was scanned.
- Fixable means a fixed package version is published. It does not mean a newer image tag exists: rebuild the image on current packages to pick the fix up.
- Grouped by what you manage. Rows are your applications, AstroPulse's add-ons, and Other workloads for anything else the scan covers. Add-on namespaces are outside the scan scope by default.
- Current state, not history. Each scan replaces the last. There is no trend over time, on any plan.
- Images only. Node operating systems, workload misconfigurations and secrets inside images are not scanned.
How scanning works
The scanner runs inside your cluster; images are never sent anywhere to be scanned. Each workload is rescanned on the add-on's scanFrequency, once a day by default (from 1h to 720h), because the CVE database changes even when your images don't. AstroPulse stores only a summary per cluster, severity counts per workload for up to 500 workloads, worst kept first. The full CVE list is read from the cluster when you open it, so it needs the cluster connected at that moment.
Get alerted
Subscribe to the Security Alerts topic under Notifications, or with astroctl notifications subscriptions upsert --topic security-alerts --channels email. Once delivery is on for your organization, AstroPulse checks daily and sends one message per organization when a cluster has at least 1 Critical or 10 High findings, at most once a week per cluster unless it gets materially worse. The message lists the worst applications, how many findings have a published fix, and the images to start with. If you subscribed and get nothing, delivery may not be enabled yet: ask your AstroPulse contact.
Other ways in
- Nova: ask, for example, "does my-cluster's latest scan report any critical vulnerabilities?"
- API: the vulnerability calls in the API reference.
With astroctl
astroctl infra k8s vulnerabilities my-cluster
astroctl app vulnerabilities checkout
astroctl infra k8s vulnerabilities my-cluster --application checkout
The first two read the stored summary; --application reads one application's CVE list from the cluster. Aliases: vuln, vulns, cve.
If it's refused
When a read has no results, the API answers with one notice saying why, and the CLI prints it with the command for the next step. The scanner's own health checks are on its page: Add-ons › Vulnerability Scanning › Overview, or astroctl infra k8s addons get <cluster> vulnerability-scanning -o yaml.
ScannerNotInstalled): "Add-on <addon> is not installed on cluster <cluster>, so its images are not scanned."NothingToScan): "Nothing to scan on <cluster>: no workloads run in the namespaces the vulnerability scanner covers."scanScope, deploy into a namespace the scope coversImagesNotScannable): "No image on <cluster> could be scanned: its registries refused the scanner every image."ScanPending): "No vulnerability scan report has been received for <cluster> yet: the scanner has not finished its first scan."scanFrequency, 24h by default) has not passedvulnerability reporting check says whether results are arrivingScanOverdue): "No vulnerability scan report has been received for <cluster> since <time>, longer than one scan interval (<interval>)."astroctl infra k8s addons get <cluster> vulnerability-scanning -o yaml, and use the rows belowvulnerability reporting check reads Failing: "Vulnerability results are not reaching AstroPulse; scanning may be running in the cluster, but its results are not being collected"astro-agent add-on's health, then read astroctl infra k8s addons events <cluster> vulnerability-scanningvulnerability scanning check reads "Vulnerability scanning is not confirmed healthy; results may be incomplete or stale"astroctl infra k8s addons events <cluster> vulnerability-scanning --k8s and astroctl infra k8s addons logs <cluster> vulnerability-scanning --level Error<N> images not scannable: registry denied (<images>)", or "No images could be scanned: registry denied for <N> images (...); give the scanner registry access"<limit> (<images>); ... raising limitsCpu under scanResources on the vulnerability-scanning add-on may let its scan finish sooner"scanResources.limitsCpu on the add-on and apply it again<images>); the usual cause is a result too large to store ..."ignoreUnfixed: true, or raise minimumSeverity, on the add-on and apply it again-- in every severity column, and a label and message for the rowastroctl infra k8s vulnerabilities <cluster>scanScopescanScope and apply the add-on again<workload> finished but its result could not be stored. ..."ignoreUnfixed or raise minimumSeverity<workload>."vulnerability reporting check for registry or time-limit notes<time> since it was deployed, longer than one scan interval (<interval>)."astroctl infra k8s addons resync <cluster> vulnerability-scanning)<cluster>' ..."