Skip to content
Calcrivo

Container Image Vulnerability Calculator

Score container image risk from CVE counts by severity and show how many fleet-wide criticals a single base image bump removes.

Inputs

images
images
CVEs
CVEs
CVEs
CVEs
CVEs
CVEs
%

Image Risk Score

75.4/ 100

Risk Level

High

Critical CVEs per Image

9CVEs

Fleet-Wide Critical CVE Instances

2,700instances

Share Inherited From the Base Image

62.2%

Criticals Removed by One Base Image Bump

1,680instances

Fleet Criticals With a Fix Available

1,728instances

Suggested Remediation Window

7days

Priority

Rebuild on a patched base image — one change clears most of the fleet's critical CVEs

Step by step

  1. Values used

    Images in the registry = 340 images; Images built on the shared base image = 280 images; Critical CVEs in the base image = 6 CVEs; High CVEs in the base image = 24 CVEs; Critical CVEs added by application layers = 3 CVEs; High CVEs added by application layers = 11 CVEs; Medium CVEs per image = 38 CVEs; Low CVEs per image = 72 CVEs; CVEs with a fix available = 64 %

  2. Container Image Vulnerability

    Image risk = 0.2 × (critical × 10 + high × 5 + medium × 2 + low × 0.5) per image, clamped to 0–100, where critical and high include CVEs inherited from the base image.

  3. Base image inheritance

    Fleet critical instances = base image criticals × images on that base + application criticals × all images. Rebuilding on a patched base removes the first term in one change.

  4. Image Risk Score

    = 75.4 / 100

  5. Risk Level

    = High

  6. Critical CVEs per Image

    = 9 CVEs

  7. Fleet-Wide Critical CVE Instances

    = 2,700 instances

  8. Share Inherited From the Base Image

    = 62.2

  9. Criticals Removed by One Base Image Bump

    = 1,680 instances

How it works

A container image inherits every vulnerability in its base layers, so one unpatched base image multiplies across every image built on it. Separating inherited from application-layer CVEs turns a fleet of thousands of findings into two numbers: the ones a base image bump fixes and the ones that need an actual code or dependency change. Scanner output looks like an unwinnable backlog until you notice that the same six base-image criticals account for two thirds of it, and one rebuild closes them everywhere at once.

Formulas

Container Image Vulnerability

Image risk = 0.2 × (critical × 10 + high × 5 + medium × 2 + low × 0.5) per image, clamped to 0–100, where critical and high include CVEs inherited from the base image.

perImageCritical
Base image criticals plus application-layer criticals
weightedPerImage
Severity-weighted CVE load for one image
imageRiskScore
0–100 risk for a representative image

Base image inheritance

Fleet critical instances = base image criticals × images on that base + application criticals × all images. Rebuilding on a patched base removes the first term in one change.

inheritedCritical
Critical CVE instances that came from the base image
criticalsFixedByBaseBump
Instances a single base image update clears
inheritedShare
Inherited instances ÷ all fleet critical instances × 100

Frequently Asked Questions

How is Container Image Vulnerability calculated?

Image risk = 0.2 × (critical × 10 + high × 5 + medium × 2 + low × 0.5) per image, clamped to 0–100, where critical and high include CVEs inherited from the base image. A container image inherits every vulnerability in its base layers, so one unpatched base image multiplies across every image built on it. Separating inherited from application-layer CVEs turns a fleet of thousands of findings into two numbers: the ones a base image bump fixes and the ones that need an actual code or dependency change.

Why does Container Image Vulnerability matter?

Scanner output looks like an unwinnable backlog until you notice that the same six base-image criticals account for two thirds of it, and one rebuild closes them everywhere at once.

What values do I need to enter?

This calculator takes 9 inputs: Images in the registry, Images built on the shared base image, Critical CVEs in the base image, High CVEs in the base image, Critical CVEs added by application layers, High CVEs added by application layers, Medium CVEs per image, Low CVEs per image, CVEs with a fix available. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.

Should I chase every CVE in an image?

No. Prioritise by fixability, reachability and severity in that order. A critical CVE in a library your code never loads is not urgent; a high CVE in your HTTP parser is. Distroless or minimal base images reduce the count dramatically simply by removing packages you never used.

How often should base images be rebuilt?

Weekly, on a schedule, with no human in the loop. CVE age is the metric that matters, and a scheduled rebuild keeps it bounded automatically. Chasing individual advisories with manual rebuilds always loses to the rate at which advisories are published.

You might also need