OCImendby CloudTrace

A container vulnerability pipeline that ends in a fix, not a report

OCImend · 2026-09-26

Short answer

A container vulnerability pipeline scans every image, ranks findings by real risk (actively exploited first, then EPSS likelihood, then code the app loads), fixes what can be fixed, gates releases on a policy, and keeps watching deployed images for new CVEs. Its outputs are SBOMs, SARIF for code scanning and VEX for findings that do not apply.

  1. 01Scanregistry → SBOM
  2. 02RankKEV · EPSS · in use
  3. 03Fixrebuild or rebase
  4. 04Gatepolicy in CI
  5. 05Watchnew CVEs, daily

Why ranking comes first

Mean known vulnerabilities per image vs. those in packages loaded at run time
known
~460
loaded
~15 %

Studies of popular images find hundreds of known CVEs per image, most in packages the application never loads. A pipeline that treats them equally produces fatigue, not fixes.

The outputs each stage should produce

StageOutputConsumer
ScanSPDX 2.3 / CycloneDX 1.6 SBOMrelease records, EU CRA
Rankfix-first listengineers
GateSARIF 2.1.0, exit codeGitHub code scanning, CI
TriageOpenVEXauditors, downstream scanners
Watchsigned webhooksSlack, on-call

In CI

ocimend scan ghcr.io/acme/api:$GITHUB_SHA --policy ocimend-policy.yaml --format sarif -o ocimend.sarif
ocimend fix ghcr.io/acme/api:1.4 --kind fixed

See the CLI guide →

Questions

What should fail a build?
Actively exploited (KEV) vulnerabilities with a fix, critical CVEs in code the app loads, secrets, and a failed FIPS verdict where FIPS is required.
Do I need an SBOM?
Increasingly yes: the EU Cyber Resilience Act requires machine-readable SBOMs for products by December 2027.

Sources

More guides