Near zero CVE container images explained | Minimus

By
Minimus

Near Zero CVE Images: What They Are, Why They Matter, and How to Get There

Near zero CVE images are container images where known risk stays below the threshold your organization can defend: typically no critical or high findings that have a fix, plus a triage path for everything else. The term sounds absolute; in practice it is governance. NIST SP 800-190 discusses containers as part of the software supply chain. Near zero fits that frame as measurable hygiene, not a one time scan.

Teams adopt the label because default public bases often carry large package sets and stale layers. Security wants fewer emergencies. Platform teams want predictable gates. Developers want reviews that end.

Key Takeaways

  • Near zero CVE is a policy outcome: you eliminate unacceptable findings under agreed rules (severity, exploitability, and patch availability), not every CVE identifier a scanner can print.
  • Most CVE noise comes from base layers and leftover build tools. Builds that use multiple stages, minimal bases, and continuous rebuilds move the numbers more than debating CVSS in tickets.
  • Scanners disagree. SBOMs (software bills of materials) scope what you own, and VEX (Vulnerability Exploitability eXchange), where valid, separates "not affected" from "must patch."
  • Sustaining near zero posture means registry rescans, ownership, and SLAs. Hardened images built from source with signed SBOMs and published remediation SLAs address the base layer directly; your application dependencies and config still need their own gates.

The following sections define terms, make the case, and describe technical levers. They also explain how to keep posture from rotting after the first cleanup.

What Are Near Zero CVE Images?

Near zero CVE images are images engineered and governed so actionable vulnerability findings stay within policy, most often no critical or high issues with an available fix, while lower severity or disputed items are triaged with SBOMs and VEX. They are not a promise that a scanner will print zero rows forever.

A CVE is a cataloged vulnerability tied to a product or component version. Container images inherit CVEs from every installed package in every layer. Your application may be fine; the OpenSSL build in the base is still listed.

Near zero acknowledges reality: new CVEs appear, scanners update mappings, and disputed or context only findings exist. A workable definition is:

Term Meaning
Near zero (operational) No critical or high issues with an available fix under your policy, or documented exception
Unfixed upstream CVE open; no patch in the distro or project yet. Track it, compensate, and set a clear end date for exceptions.
Noise Duplicate IDs, scanner mismatch, or VEX "not affected" after review

Scanner output is not ground truth. Two tools can report different counts for the same digest because databases, package matching, and backport handling differ. EPSS (Exploit Prediction Scoring System) from FIRST and CISA KEV (Known Exploited Vulnerabilities catalog) help separate theoretical CVEs from actively exploited ones when you prioritize.

For the relationship between minimal bases and fewer findings to triage, see Hardened Container Images: The Foundation of Container Security.

Why Do Near Zero CVE Images Matter?

Unused packages expand blast radius. Attackers care about reachable code and tools (shells, package managers) that make life easier after they get a foothold.

Constant criticals burn on call rotation and release velocity. Policy based near zero turns debate into pass or fail against a bar everyone agreed on.

SOC 2, PCI DSS, HIPAA, and FedRAMP programs ask for vulnerability management with evidence. SBOMs and audit trails beat screenshots. Executive Order 14028 normalized SBOM expectations for many federal suppliers; private sector procurement often follows.

Customers ask for artifact inventory and patch behavior. You do not win on scanner theater; you win on repeatable outcomes.

Developers notice the difference when security reviews stop being a spreadsheet of every low finding. A clear bar (what blocks a merge, what gets an exception, and what waits for upstream) cuts thrash. It keeps security from becoming the team that says "no" without a path to "yes."

Where Do CVEs Hide in an Image?

The base layer is often the largest contributor: full OS images ship utilities you never run.

Application dependencies add language packages and transitive pulls. Lockfiles reduce drift; they do not remove upstream CVEs until you bump versions.

Build leftovers belong in a build stage, not the runtime stage: compilers, test frameworks, and shells should not ship to production.

When you use multiple build stages, you copy artifacts into a slim final image so the production digest does not carry a full JDK if you only need a JRE, or node_modules dev trees if you only need a production bundle.

How Do Base Image Choices Change the Starting Point?

Style Role
Full distro (Debian, Ubuntu) Easy iteration, large inherited CVE surface
Slim or minimal Middle ground
Alpine Small; musl and compatibility checks matter
Distroless or minimal runtime No shell by default; adjust debug workflows
Scratch Static binaries only

Alpine security advisories describe fixes in Alpine packages; raw "count everything in NVD" comparisons can misread backports that are specific to Alpine. When a number matters for a decision, reproduce it with your enforcement scanner and document the tool version.

Distroless and minimal runtimes often cut size and attack surface together: fewer utilities means fewer CVE rows and faster pulls in CI. The tradeoff is debuggability. Use break glass images, sidecars, or one off debug pods instead of shipping curl in production because it is convenient.

What Is the Playbook for Getting to Near Zero?

  1. Baseline: Inventory production images and digests; run one primary scanner for trends.
  2. Prioritize: Critical and high with fixes first; use KEV and EPSS when prioritizing among highs.
  3. Remediate: Rebuild bases, shrink layers, pin versions, and use multiple stages in your Dockerfile.
  4. Automate: Scan on build, block on policy, sign artifacts, attach SBOMs.
  5. Monitor: Rescan registries; new CVEs land against old digests.

Policy as code (OPA, Conftest, and Kyverno admission) encodes allowed bases and forbidden severity levels so exceptions stay visible.

Who Owns What?

Near zero breaks if platform, applications, and security disagree in production. A simple split that works: platform owns golden bases and registry promotion rules; application teams own language dependencies and lockfiles; security owns severity policy, exceptions, and evidence for audits. Meetings get shorter when the CI failure already encodes the policy you wrote down.

A Practical 30, 60, and 90 Day Shape

You do not need a slide deck for every team, but you need sequence.

Days 1 through 30: inventory what runs, pick one scanner for metrics, and publish the top ten worst digests.

Days 31 through 60: put the worst offenders through multiple build stages, pin bases, and turn on merge blocking gates for new criticals on main.

Days 61 through 90: SBOM export for production lines, admission policies for registry allow lists, and automated base refresh jobs so freshness is a cron job, not a hero project.

How Do Scanning, SBOMs, and VEX Fit Together?

Trivy and Grype are common open source scanners; enterprises also use commercial dashboards. Pick one gate for CI truth, then use others for research.

SBOMs in SPDX or CycloneDX answer what shipped. When a new CVE publishes, you query the SBOM, not fifty repos by hand.

VEX statements mark "not affected" when analysis supports it, so you do not rebuild blindly for dead code paths. The workflow is covered in Minimus VEX Support: Filter Out Non-Exploitable Vulnerabilities Automatically.

For how scanner output behaves against already thin images, Using Open Source Vulnerability Scanners With Hardened Container Images is a practical reference.

When vendors publish how they count CVE reduction, demand methodology and reproduce results with your own scanner and pinned digest. Read how Minimus backs its CVE count claims for the kind of evidence buyers should expect from any provider making quantitative claims.

Why Is Near Zero a Process, Not a Badge?

New CVEs publish continuously. An image clean at build can fail next week when the database updates. Freshness matters: rebuild on a cadence, not only when features ship.

Immutable workloads mean you replace the image and roll the deployment. You do not apt-get inside running containers as a primary fix.

Set SLAs (for example critical within 48 hours of upstream fix availability when a patch exists upstream) and name owners for base images, application dependencies, and policy.

Signing with Cosign (Sigstore) and provenance attestation do not remove CVEs. They tie a digest to a verifiable build so rollback, incident response, and customer questions about integrity stay grounded in facts. Store SBOMs next to signatures so "what is inside" and "who built it" refer to the same release artifact.

Registry rescanning matters because your digest is static while the vulnerability database moves. A pipeline that only scans on docker build but never re-evaluates promoted images will drift into silent debt unless scheduled jobs or vendor feeds reopen tickets when new CVEs map to old packages.

Language specific bases follow their own upstream CVE rhythm; the same pipeline discipline applies, but patch velocity follows the runtime's release cycle.

How Do You Measure Whether Near Zero Is Working?

Use a small set of metrics you actually review in staff meetings: mean time to remediate critical findings on production digests, share of production images under the agreed severity bar, and recurrence rate after a fix (the same CVE coming back because a service pinned an old base).

If the numbers do not move quarter over quarter, the program is paperwork, not posture.

What About Unfixable CVEs?

Sometimes no patch exists yet. Document risk acceptance: owner, expiry date, compensating controls (network policy, runtime rules). If upstream is unmaintained, plan migration.

In regulated environments, align risk acceptance language with assessor expectations; compensating controls are not a substitute for patching when a fix exists and your policy requires it.

Conclusion

Near zero CVE images are a process and policy outcome: agreed severity bars, owned exceptions, continuous rebuilds, and evidence (SBOMs, scans, and signing). This article is technical guidance, not legal or compliance advice. Map your program to your frameworks and contracts with your security, risk, and legal stakeholders.

How Minimus Approaches Near Zero CVE for the Base Layer

Public minimal bases still bundle distribution-scale package graphs. Minimus builds hardened container images from upstream source, includes only what the workload needs, ships signed SBOMs, and aligns VEX and vulnerability intelligence so teams focus on exploitable residual risk. The Image Gallery covers common stacks; Image Creator adds packages when you need controlled customization with the same update model.

Validate any vendor claim against your own scanner, contract, and scope of what the provider owns versus what your application still must patch.

Minimus is not a replacement for runtime CNAPP for in-memory threats; it is where base layer CVE volume usually drops. For NIST-aligned framing of container practices, Using Minimus to Achieve NIST SP 800-190 Container Security Compliance maps controls to assessable language.

FAQ

Does near zero mean literally zero CVE rows?
No. It means your policy is met (severity, exploitability, and patch rules), with exceptions governed.

Are two scanners supposed to match?
Not always. Standardize enforcement, document variance, and reproduce disputed findings.

Do SBOMs fix vulnerabilities?
They inventory and speed response; patches still require rebuilds or vendor updates.

What is the fastest lever for fewer CVEs?
Usually a smaller runtime (multiple build stages plus a minimal or hardened base) plus automated rebuilds.

How is "near zero CVE" different from "zero CVE"?
Zero CVE often describes a strict bar or vendor delivery claim for a defined scope (for example no critical or high with fixes available). Near zero explicitly leaves room for residual identifiers, unfixed upstream issues, and VEX triage. Choose the term that matches how your policy is written.

Minimus
Minimus
Sign up for minimus

Avoid over 97% of container CVEs

Access hundreds of hardened images, secure Helm charts, the Minimus custom image builder, and more.