Container Security Scan Analyzer
Normalize container scan reports, apply critical and high release limits, and rank fixable findings for a focused remediation queue.| Priority | Finding | Package | Severity | Fix state | Target | Review next | Pressure | Copy |
|---|---|---|---|---|---|---|---|---|
| {{ row.priority }} | {{ row.finding }} | {{ row.package }} | {{ row.severity }} | {{ row.fix_state }} | {{ row.target }} | {{ row.next_action }} | {{ row.priority_score }} |
| Evidence | Value | Review note | Copy |
|---|---|---|---|
| {{ row.label }} | {{ row.value }} | {{ row.note }} |
| Parser signal | Value | Review note | Copy |
|---|---|---|---|
| {{ row.label }} | {{ row.value }} | {{ row.note }} |
A container scan is a snapshot of known findings against one image or artifact. It connects an advisory identifier to a package and installed version, then may add severity, a fixed version, package type, target, and vendor status. That evidence helps a release team decide what must be patched, reviewed, waived, or tracked.
Reports from different scanners rarely share one shape. Trivy groups findings by target, Grype pairs vulnerabilities with artifacts, Snyk uses dependency-focused fields, and SARIF carries results through a general static-analysis format. Normalization makes those rows comparable enough for one review queue, but it cannot make their databases, severity sources, or package detection identical.
| Evidence | What it supports | What it does not prove |
|---|---|---|
| Severity | Consistent policy gates and first-pass ordering | That the vulnerable code is reachable or exploitable in this workload |
| Fixed version | A concrete package-update path | That the update is compatible or available in the current base image |
| Image reference | Which scan evidence belongs to which artifact | That a mutable tag still points to the same image later |
| Clean gate | The selected critical and high allowances were not exceeded | That the image has no vulnerabilities, secrets, misconfiguration, or supply-chain risk |
A useful release policy states the counted population and boundary clearly. “No more than zero critical findings” differs from “no more than zero fixable critical findings,” because an unfixed critical row stays visible but can be excluded by the second policy. Equality also matters: an allowance of two high findings permits exactly two and blocks at three.
Fixability and runtime relevance improve remediation order without changing severity. A package with a listed fix can move directly into a rebuild, while an unfixed issue needs vendor review, replacement, an exception, or compensating controls. Package-name hints can raise known runtime dependencies in the queue, but the scan alone cannot determine whether code is loaded or reachable.
How to Use This Tool:
Use the complete report for the exact image being judged, preferably identified by an immutable digest.
- Paste or load one JSON, SARIF, CSV, or text report. Use Auto detect for a recognized scanner shape, or pin the format when detection is ambiguous.
- Enter the image reference and choose whether the evidence supports a release, base-image refresh, or triage review. The profile changes action wording, not the numeric gate.
- Set critical and high allowances, then choose all high-and-critical findings or only those with a listed fix as the gate population.
- Add runtime package fragments only when they reflect the workload. They raise queue priority but do not change severity or gate counts.
- Confirm the resolved parser, duplicate count, gate population, and image identity before using the Remediation queue to assign work.
Interpreting Results:
Release blocked, Refresh required, or Escalate triage means at least one counted critical or high total is greater than its allowance. The profile changes the decision language and recommended follow-up; the same limits and counted population drive all three profiles.
Read the gate beside Severity fixability. A clear fixable-only gate may still contain unfixed critical findings, and those rows remain visible. Conversely, a blocked gate may be driven by duplicate-looking findings from distinct targets or installed versions that the deduplication rule correctly keeps separate.
Verify high-priority rows against the scanner's original report and advisory source. Parser normalization, severity fallback, and package-name matching are triage aids, not an exploitability assessment or waiver approval.
Technical Details:
Container-scan analysis has two separate decisions. The gate counts normalized critical and high findings against explicit allowances. The remediation score ranks individual findings by severity, fixability, declared runtime relevance, and an available numeric score.
Transformation Core
- Recognized Trivy, Grype, Snyk, SARIF, GitLab, generic JSON, and CSV fields are mapped to advisory, package, installed version, fixed version, severity, target, package type, title, source, and numeric score.
- Severity labels are normalized to Critical, High, Medium, Low, Negligible, or Unknown. When no usable label exists, a numeric score maps at 9, 7, 4, and greater than 0.
- Rows are deduplicated by advisory, package, installed version, and target after punctuation and case are removed from those comparison values.
- Every remaining row contributes to severity totals; the selected gate population and remediation score are then evaluated independently.
Rule Core
The gate blocks only when a counted total is greater than its allowance. Equality remains within policy.
All critical and high findings are counted by default. Fixable-only mode restricts those counts to rows with a non-placeholder fixed version or a fix state that resolves to fixed. Unfixed findings are not removed from the report.
Formula Core
Remediation pressure starts with a fixed severity weight and adds transparent bonuses.
| Item | Value or boundary |
|---|---|
| Severity weights | Critical 50, High 30, Medium 12, Unknown 6, Low 4, Negligible 1 |
| Release blocker | P ≥ 64 |
| Patch branch | 42 ≤ P < 64 |
| Security queue | 22 ≤ P < 42 |
| Maintenance | 10 ≤ P < 22 |
| Track | P < 10 |
The source is limited to one million characters. Critical and high allowances accept whole numbers from 0 to 9,999, and the rendered remediation queue accepts 5 to 100 rows after all accepted findings have been counted and scored.
Security and Privacy Notes:
Scanner output can omit packages, report stale advisory data, disagree with another database, or describe code that is present but unreachable. Re-scan the immutable image with the organization's approved scanner and policy before release, and record exceptions outside this triage score.
- Pasted reports and local files are processed in the browser and are not uploaded by this analysis.
- Reports may expose private registry names, image digests, package versions, and unresolved weaknesses. Minimize or redact them before sharing.
- A gate covers vulnerability-report rows only. It does not inspect image signatures, secrets, runtime configuration, provenance, malware, or network exposure.
References:
- Application Container Security Guide, National Institute of Standards and Technology, September 2017.
- Trivy reporting documentation, Aqua Security.
- Grype command line reference, Anchore.
- SARIF Version 2.1.0, OASIS, March 2020.
- CVSS v3.1 specification, FIRST, June 2019.