Safeguard
Security Guides•

Does deleting a vulnerable image tag from the registry fix the exposure?

No. Deleting a tag stops pulls of that tag, but running pods, node caches, mirrors and digest references keep the image. What to do instead.

Safeguard Security Team
4 min read

No. Deleting a tag removes a label, not the image, and even deleting the image does not touch workloads that already pulled it. Running pods keep their layers, nodes cache images, mirrors hold copies, and anything referencing the digest may still work. Fix the exposure by redeploying patched workloads, then clean up the registry.

What deleting actually does

A tag points at a digest. Remove the tag and the digest may still exist and be pullable by digest, depending on the registry and its cleanup rules. Even if the registry deletes the content, three other places hold it.

  • Running containers keep using the image they started with.
  • Nodes cache layers. The Kubernetes documentation says the container runtime uses cached layers when they are already present, and that all pods can use any image cached on a node.
  • Mirrors and pull-through caches hold copies that your registry deletion does not reach.

Why Kubernetes defaults matter

The same page explains that when a pull policy is not set and the image has a specific tag, the default is IfNotPresent, which makes the kubelet skip the pull when the image already exists. So a node that has the vulnerable image will keep serving it to new pods until the cache is cleared or the pod references a different image. If your deployments use a tag that you replaced, new pods on nodes with the old cached image may still start the old version.

That is one of the strongest arguments for referencing images by digest, since a new digest cannot be satisfied by an old cache.

The correct order

  1. Build the patched image and note its digest.
  2. Update the workload to reference the new digest and roll it out.
  3. Confirm no running pod still uses the old digest. See find which pods run a vulnerable image.
  4. Check mirrors, pull-through caches and base images of other services for the old digest.
  5. Only then block or delete the old image in the registry.

Deleting first can also cause harm: a pod that restarts after the image is gone may fail to start, turning a vulnerability into an outage.

Blocking instead of deleting

If you need to stop anyone from using the image right away, prefer a block over deletion. An admission rule that denies the digest prevents new pods while leaving the evidence in place. See should admission control block critical image vulnerabilities. Keep the image and its scan record for investigation and audit, then delete under your retention policy.

What about a compromised image

If the image itself was malicious, not just vulnerable, the order changes: block immediately, then investigate what ran. See is a supply chain incident over when the registry removes the package for why removal is not the end.

Checklist

CheckDone when
New digest deployedAll workloads reference it
Old digest running anywhereQuery returns none
Mirrors and cachesOld digest purged or blocked
RegistryOld digest blocked, then removed on schedule
EvidenceScan result and decision retained

Where Safeguard fits

Safeguard keeps scan and SBOM records by image so you can answer which services contain a flawed package, and its policies and gates can stop that image from being promoted. Try a free scan.

Quick check

If I delete the image, do running pods stop?

No. They continue with the layers they already pulled. They may fail to restart if the image is needed again.

Why reference images by digest?

A digest names exact content, so a new digest cannot be satisfied by an old cached image on a node.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.