{{ _bpn }} ↔ {{ _cpn }}
{% elif _bpn %}{{ _bpn }}
{% else %}Two-version comparison
{% endif %} {% elif transform_result and transform_result.project_count %}Version-over-version progression across {{ transform_result.project_count }} project{{ 's' if transform_result.project_count != 1 else '' }}
{% else %}Version-over-version progression
{% endif %}| Project | Version | Date | Total | Critical | High | Medium | Low | Fixed | New | Components |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ step.version_project_name or proj.project_name }} | {{ step.version }} {% if step.fetch_failed %}⚠ fetch failed{% endif %} | {{ step.created }} | {% if step.total is none %}—{% else %}{{ step.total }}{% endif %} | {% if step.critical is none %}—{% else %}{{ step.critical }}{% endif %} | {% if step.high is none %}—{% else %}{{ step.high }}{% endif %} | {% if step.medium is none %}—{% else %}{{ step.medium }}{% endif %} | {% if step.low is none %}—{% else %}{{ step.low }}{% endif %} | {% if step.fixed is none %}—{% elif step.fixed > 0 %}-{{ step.fixed }}{% elif loop.index0 == 0 %}—{% else %}0{% endif %} | {% if step.new is none %}—{% elif step.new > 0 %}+{{ step.new }}{% elif loop.index0 == 0 %}—{% else %}0{% endif %} | {% if step.components is none %}—{% else %}{{ step.components }}{% endif %} |
| ID | Severity | Component | Score | Title |
|---|---|---|---|---|
| {{ row.display_id if row.display_id else '—' }} | {{ row.severity }} | {{ row.component_name }}{% if row.component_version %} {{ row.component_version }}{% endif %} | {{ "%.1f"|format(row.risk / 10.0) if row.risk else '—' }} | {{ row.title if row.title else '—' }} |
No fixed findings.
{% endif %}| ID | Severity | Component | Score | Title | Note |
|---|---|---|---|---|---|
| {{ row.display_id if row.display_id else '—' }} | {{ row.severity }} | {{ row.component_name }}{% if row.component_version %} {{ row.component_version }}{% endif %} | {{ "%.1f"|format(row.risk / 10.0) if row.risk else '—' }} | {{ row.title if row.title else '—' }} | {{ row.external_change_note if row.external_change_note else '' }} |
No new findings.
{% endif %}CVEs present in both versions whose severity or exploit status changed due to platform intelligence updates — not developer action. These findings remain open and may require re-prioritization.
| CVE ID | Component | Change Type | Old Severity | New Severity | Old Exploit | New Exploit |
|---|---|---|---|---|---|---|
| {{ entry.cve_id }} | {{ entry.component_name if entry.component_name else '—' }} | {{ entry.change_type | replace('_', ' ') | title }} | {% if entry.old_severity %}{{ entry.old_severity }}{% else %}—{% endif %} | {% if entry.new_severity %}{{ entry.new_severity }}{% else %}—{% endif %} | {{ entry.old_exploit if entry.old_exploit else '—' }} | {{ entry.new_exploit if entry.new_exploit else '—' }} |
| Change | Component | Old Version | New Version | Findings Impact |
|---|---|---|---|---|
| {% if row.change_type == 'added' %}+ Added{% elif row.change_type == 'removed' %}- Removed{% else %}↑ Updated{% endif %} | {{ row.name }} | {{ row.version_baseline | default('-', true) }} | {{ row.version_current | default('-', true) }} | {{ row.findings_impact | default(0) }} |
No comparison data available.
Ensure projects have at least two scanned versions, or scope with --project or --folder.