{# SAST program dashboard: a findings funnel, a CVSS-band breakdown, a "Top Vulnerability Types" (CWE) breakdown, and a short "Top findings" preview linking out to the full, filterable findings register at /activities/sast/findings (sast_findings_list.html) -- the one dashboard in this app backed by a stored table (sast_findings) instead of report text re-parsed on every request. See web/sast_dashboard.py's module docstring for why. #} Program dashboard
{{ sast_dash.funnel.findings }} Open findings
{{ sast_dash.funnel.exploitable }} Exploitable (not Latent)
{{ sast_dash.funnel.verified }} Verified (Confirmed verdict)
{{ sast_dash.funnel.severe }} Severe (CVSS High/Critical)

CVSS severity

Computed by secfoo from each finding's own CVSS v3.1 vector -- never asserted directly by the model.

{{ sast_dash.funnel.findings }}
Critical ({{ sast_dash.cvss_band_counts.critical }}) High ({{ sast_dash.cvss_band_counts.high }}) Medium ({{ sast_dash.cvss_band_counts.medium }}) Low ({{ sast_dash.cvss_band_counts.low }}) None ({{ sast_dash.cvss_band_counts.none }})

Top vulnerability types

Open findings by CWE. Findings without a specific CWE ("unverified") are excluded from this breakdown.

{% if sast_dash.top_cwe_counts %} {% for cwe, count in sast_dash.top_cwe_counts %}
{{ cwe }}
{{ count }}
{% endfor %} {% else %}

No findings with a specific CWE yet.

{% endif %}
{% set top_findings = sast_dash.open_findings[:5] %}

Top findings

The highest-CVSS open findings across all projects.

View all findings ({{ sast_dash.open_findings | length }} open, {{ sast_dash.closed_findings | length }} closed) →
{% if top_findings %}
{% for f in top_findings %} {% endfor %}
ProjectAccessTitleSource locationLast seenCVSS
{{ f.project_display_name }} {% if f.verdict and f.verdict.lower() == 'confirmed' %}Verified{% endif %} {% if f.cvss_vector | cvss_network_reachable %}External{% endif %} {{ f.title }}
{{ f.cwe or "unverified" }}
{{ f.location_file }}{% if f.location_line %}:{{ f.location_line }}{% endif %} {{ f.last_seen_at | fmt_time }} {% if f.cvss_score is not none %} {{ f.cvss_score | cvss_rating_label | capitalize }} {{ "%.1f"|format(f.cvss_score) }} {% else %} No vector {% endif %}
{% else %}
No open findings yet.
{% endif %}