Safeguard
Security Guides•

Does a signed container image mean it was scanned?

No. A signature says who published an image and that it was not altered. It says nothing about vulnerabilities. Here is how to ask for both proofs.

Safeguard Security Team
7 min read

No. A signature on a container image shows which identity signed a specific digest and that the content has not changed since. It does not show that anyone scanned the image, found it clean, or fixed what they found. Scanning and signing answer different questions, and a buyer should ask for both.

What a signature actually proves

Image signing tools bind an identity to an image digest. Sigstore's cosign documentation describes signing as attaching a signature to an image so that others can verify it later against a public key or an identity. The signed thing is a digest, which is a hash of the image manifest. If one byte changes, the digest changes and the signature no longer matches.

So a valid signature gives you two facts: this digest was signed by this identity, and it is the same digest that was signed. That is useful. It helps you detect tampering in transit or in a registry, and it tells you who to ask if something is wrong.

What a signature does not prove

An attacker can sign a malicious image. A careless team can sign an image full of known vulnerabilities. A signature is about origin and integrity, not about quality.

QuestionSignature answers itScan answers it
Who published this digest?YesNo
Was it changed after publishing?YesNo
Does it contain a package with a known CVE?NoYes
Was it checked on a given date?NoYes, if the scan is dated
Is the package actually exploitable here?NoOnly with extra analysis

How to connect the two

The cleanest pattern is to scan first, then sign the digest that passed. That way the signature carries a meaning: "this digest was built by our pipeline and passed our policy on this date." Without that ordering, the signature only means "our pipeline built it."

Some teams go one step further and attach the scan result or an SBOM to the image as an attestation, so the evidence travels with the digest. If you do this, record the scan date and the data version used, because a result goes stale. A clean scan from March says little about a new CVE published in October. A related point is that vulnerabilities appear after signing, so scanning has to repeat for images already deployed.

Questions to ask a vendor or a supplier

When someone hands you a signed image, ask:

  1. What identity signed it, and how do I verify that identity?
  2. Was a vulnerability scan run on this exact digest, and when?
  3. What policy did the scan have to pass?
  4. How often do you rescan images that are already released?
  5. Can I get the SBOM for this digest?

If the answers to 2 to 5 are vague, you have an integrity story and not a vulnerability story.

A worked example: sign on Monday, vulnerable by Friday

Consider a team that builds an API image on a Monday. The pipeline scans the image, finds nothing above its policy threshold, and signs the digest. Everyone is happy, and the signature verifies correctly from that point on.

On Friday a new CVE is published against a library inside that image. Nothing about the image changed, so its digest is the same and the signature still verifies. A verification check passes. A fresh scan, however, now reports a high severity finding. Both results are correct. They answer different questions.

This is why a signature cannot stand in for a scan. The signature is frozen at the moment of signing, while vulnerability knowledge keeps moving. Anyone who treats "signed" as "safe" will be wrong a few days later without anything in the image having changed.

Step by step: build both proofs into a pipeline

  1. Build the image and record its digest, not only its tag.
  2. Scan that exact digest and store the result with a timestamp and the data version used.
  3. Apply your policy, for example no fixable critical findings.
  4. If the policy passes, sign the digest. If it fails, do not sign, and do not publish.
  5. Attach the SBOM or the scan result to the image so the evidence travels with it.
  6. At deploy time, verify the signature and check that a scan exists that is newer than your maximum age, for example seven days.
  7. Rescan deployed digests on a schedule, and raise findings that appear after release.

Steps 6 and 7 are the ones teams skip. Without them the signature gives a false sense of continuing assurance.

What to look for in supplier evidence

When a supplier says an image is signed and scanned, ask for each claim separately and compare the answers with this table.

ClaimEvidence to ask forWeak answer
SignedSigner identity and how to verify it"We sign everything" with no verification method
ScannedDated result for this digestA screenshot with no date or digest
Passed policyThe policy and the threshold"Clean" with no definition
Kept currentRescan schedule for released images"We scan at build" only
Has an SBOMSBOM for this digestAn SBOM for a different version

A good supplier answers all five in one short document. A weak one answers the first and goes quiet on the rest.

Common mistakes

  • Verifying by tag. A tag can move to a different digest, so verify the digest you will actually run.
  • Treating a signature as a statement about the contents. It speaks to origin and integrity only.
  • Signing before the scan finishes, so the signature carries no policy meaning.
  • Never recording which scan went with which signature, which leaves you unable to answer an auditor later.

Try it yourself

Click through it at your own pace, or open it full screen.

Run the demo and notice that the findings come from the packages inside the image, not from any signature on it.

Where Safeguard fits

Safeguard can scan an image and its dependencies and produce SBOM evidence you can keep next to your signing records. You can try a free scan at gold.safeguard.sh/scan.

Quick check

Can I trust an image from a verified publisher without scanning it?

Trust the origin, yes. Trust the contents, not automatically. A verified publisher can still ship an image with known vulnerabilities, so scan what you pull.

Should I sign before or after scanning?

After. Sign the digest that passed your policy so the signature reflects a checked image.

Does a signature expire when a new CVE is published?

No. The signature stays valid as long as the digest is unchanged. That is exactly why you also need regular rescans of released images.

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.