virt-handler: KubeVirt node agent, part of the Kubernetes VM Stack. Unlisted: scores below A.
470
readystack/virthandler:v1.9.1-CE-centos9-r1
Source, recipe and records
v1.9.1): https://github.com/kubevirt/kubevirt/tree/c3d19093f9c7b843b3879b18dc088911c081c39ereadystack/virthandler:v1.9.1-CE-centos9-r1): https://readystack.dev/api/scansA cosign-signed build of KubeVirt v1.9.1 (github.com/kubevirt/kubevirt, commit c3d19093f9c7), Apache-2.0, built clean-room from official upstream source by ReadyStack.
Who: Kubernetes cluster administrators who run virtual machines in their clusters with KubeVirt.
Why: virt-handler runs on every node, as a DaemonSet. It keeps each virtual machine on its node in step with the cluster's definition, reports the machine's state, and handles its node-side networking and storage.
Use case: When a virtual machine is assigned to a node, virt-handler on that node sees the assignment and has the machine's virt-launcher pod start it; when the machine is deleted, virt-handler turns it off. Changes in the machine's state are reported back to the cluster.
About the upstream project, written from its own description: https://github.com/kubevirt/kubevirt/blob/main/docs/components.md · https://github.com/kubevirt/kubevirt
Signature, user and attestations below were measured on the published digest sha256:32f7a08c232f0e982819b2e4d38d56c04959bb8efc3d02a86be9767b34fb340e on 2026-10-29.
sha256:32f7a08c232f0e982819b2e4d38d56c04959bb8efc3d02a86be9767b34fb340e, measured 2026-10-29 (an SBOM made with syft, vulnerabilities matched with grype, scored with cerodeo-v1; syft 1.54.1, grype 0.120.1, vulnerability database v6.1.10@2026-10-29T06:23:34Z). Rubric deductions: high_fixable 17 (-170); medium_fixable 63 (-189); high_unfixable 17 (-51). This release is not listed on readystack.dev, which lists a release only when it scores A on this scan. Why it is published unlisted: KubeVirt builds virt-handler on its own CentOS Stream 9 package set. That set carries high vulnerabilities that CentOS Stream has not fixed yet, and the scan also counts 17 high and 63 medium findings it marks fixable (the scan matches Debian's libssl3 3.0.22 in the distroless base against the lower fixed versions of CentOS Stream 9's openssl, which Docker Scout and OSV do not report as fixable critical or high), so the image cannot reach Grade A on ReadyStack's scan. The request rules out rebuilding KubeVirt on another base, and KubeVirt v1.9.1 neither supports nor publishes its CentOS Stream 10 variant. ReadyStack scans this release every day as well; its first and latest scans are at https://readystack.dev/api/scans under readystack/virthandler:v1.9.1-CE-centos9-r1.04daa92344a52dbc) on this release's index digest sha256:32f7a08c232f0e982819b2e4d38d56c04959bb8efc3d02a86be9767b34fb340e; verify with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/virthandler:v1.9.1-CE-centos9-r1.107).This image follows the ReadyStack release-tag convention:
The current release is v1.9.1-CE-centos9-r1 — published unlisted: readystack.dev does not list it. Release tags use the pattern <upstream-version>-CE-<base-os>-r<N>; the current one is signed, attested (SBOM + provenance), and is provided under the ReadyStack Agreement.
Earlier release tags (an older version or revision in the same pattern) are superseded. They stay pullable so existing deployments can pin them, but they are no longer re-graded, and fixes appear only in newer releases: move to the current release. For a superseded release's build kit, ask support.
Release tags never move, so pulling the same tag again never changes the image. To be offered each new release automatically (a new revision r<N+1>, or a new upstream version), use the ReadyStack Renovate preset: https://readystack.dev/updates.html
Any tag beginning with internal- is an engineering-pipeline artifact published for build observability. It is unsupported, may change or disappear without notice, and must not be used in production.
# ✓ current release
docker pull readystack/virthandler:v1.9.1-CE-centos9-r1
# ✗ unsupported (do not pull)
docker pull readystack/virthandler:internal-...
This release is signed; verify it with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/virthandler:v1.9.1-CE-centos9-r1 (the signature is recorded in the public Sigstore transparency log). Support: [email protected], as set out in the ReadyStack Agreement.
the node agent (a DaemonSet): it prepares each node for VMs, hands VirtualMachineInstances to their virt-launcher Pods and reports node and VM state. It runs privileged and as root, which its Pod sets (runAsUser: 0 through the KubeVirt CR); the image's own default user is qemu (uid 107).
virt-handler runs on a node as a pod of KubeVirt's DaemonSet, which passes it --pod-ip-address, --hostname-override and a kubeconfig (--kubeconfig); the admin guide shows the DaemonSet's user and root patch, not its arguments. Started on its own with docker run -d the container exits at once with panic: no pod ip detected. To check the image alone: docker run --rm --network none readystack/virthandler:v1.9.1-CE-centos9-r1 --help, which prints the usage and exits 0.
The complete --network=none build kit for this image — plus admin/DB/API handbooks, the build's validation records, and its build provenance records — is not listed on readystack.dev while this release is unlisted; ask support ([email protected]) for it. A clean-room rebuild from this release's archive on an egress-blocked host reproduced its linux/amd64 digest sha256:cc95abc1a3ac1202eeb71e3f3d4cab910163d8e6b141eaddbcaaf181c709a82a on 2026-10-29.
— ReadyStack · readystack.dev
Content type
Image
Digest
sha256:ed258eeee…
Size
6.9 MB
Last updated
2 days ago
docker pull readystack/virthandler:sha256-cc95abc1a3ac1202eeb71e3f3d4cab910163d8e6b141eaddbcaaf181c709a82a.att