{% for cve in cve_data %}
{# -------------------------------------------------------------------------
Use local variables to reduce repetitive checks while preserving output
------------------------------------------------------------------------- #}
{% set cve_meta = cve['CVE Data'].get('cveMetadata', {}) if cve['CVE Data'] else {} %}
{% set containers = cve['CVE Data'].get('containers', {}) if cve['CVE Data'] else {} %}
{% set cna = containers.get('cna', {}) %}
{% set metrics = cna.get('metrics', []) %}
{% set references = cna.get('references', []) %}
{% set descriptions = cna.get('descriptions', []) %}
{% set description = descriptions[0]['value'] if descriptions else 'N/A' %}
{% set cve_id = cve_meta.get('cveId', 'N/A') %}
{% set date_published = cve_meta.get('datePublished', None) %}
{% set base_score = metrics[0]['cvssV3_1']['baseScore']
if metrics and metrics[0].get('cvssV3_1') else 'N/A' %}
{% set base_severity = metrics[0]['cvssV3_1']['baseSeverity']
if metrics and metrics[0].get('cvssV3_1') else 'N/A' %}
{% set vector_string = metrics[0]['cvssV3_1']['vectorString']
if metrics and metrics[0].get('cvssV3_1') else 'N/A' %}
π Vulnerability Information
{{ description }}
Published |
{# Using 'datetimeformat' filter if date_published is valid #}
{{ date_published|datetimeformat if date_published else 'N/A' }}
|
Base Score |
{{ base_score }} ({{ base_severity }})
|
Vector |
{{ vector_string }} |
βΎοΈ Exploit Prediction Score (EPSS)
Score |
{% if cve['EPSS Data'] and cve['EPSS Data'].get('data') %}
{{ "%.2f" % (cve['EPSS Data']['data'][0]['epss'] * 100) }}%
Probability of exploitation
|
{% else %}
N/A |
{% endif %}
π‘οΈ CISA KEV Catalog
Listed |
{{ cve['CISA Data']['cisa_status'] if cve['CISA Data'] else 'N/A' }}
|
Ransomware |
{{ cve['CISA Data']['ransomware_use'] if cve['CISA Data'] else 'N/A' }}
|
π£
Public Exploits (Total: {{ cve['Public Exploits Total'] }})
{% if cve['GitHub Data']['pocs'] %}
GitHub
{% for poc in cve['GitHub Data']['pocs'] %}
{{ poc['created_at']|datetimeformat }} |
{{ poc['html_url'] }}
|
{% endfor %}
{% endif %}
{% if cve['VulnCheck Data']['data'] %}
{% endif %}
{% if cve['ExploitDB Data'] %}
{% endif %}
π΅οΈ HackerOne Hacktivity
Rank |
{% if cve['HackerOne Data']
and cve['HackerOne Data'].get('data')
and cve['HackerOne Data']['data'].get('cve_entry') %}
{{ cve['HackerOne Data']['data']['cve_entry']['rank'] }}
{% else %}
N/A
{% endif %}
|
Reports Submitted |
{% if cve['HackerOne Data']
and cve['HackerOne Data'].get('data')
and cve['HackerOne Data']['data'].get('cve_entry') %}
{{ cve['HackerOne Data']['data']['cve_entry']['reports_submitted_count'] }}
{% else %}
N/A
{% endif %}
|
Severity |
π Unknown:
{% if cve['HackerOne Data']
and cve['HackerOne Data'].get('data')
and cve['HackerOne Data']['data'].get('cve_entry') %}
{{ cve['HackerOne Data']['data']['cve_entry']['severity_count_unknown'] }}
{% else %}
0
{% endif %}
,
π« None:
{% if cve['HackerOne Data']
and cve['HackerOne Data'].get('data')
and cve['HackerOne Data']['data'].get('cve_entry') %}
{{ cve['HackerOne Data']['data']['cve_entry']['severity_count_none'] }}
{% else %}
0
{% endif %}
,
β οΈ Low:
{% if cve['HackerOne Data']
and cve['HackerOne Data'].get('data')
and cve['HackerOne Data']['data'].get('cve_entry') %}
{{ cve['HackerOne Data']['data']['cve_entry']['severity_count_low'] }}
{% else %}
0
{% endif %}
,
π§ Medium:
{% if cve['HackerOne Data']
and cve['HackerOne Data'].get('data')
and cve['HackerOne Data']['data'].get('cve_entry') %}
{{ cve['HackerOne Data']['data']['cve_entry']['severity_count_medium'] }}
{% else %}
0
{% endif %}
,
π₯ High:
{% if cve['HackerOne Data']
and cve['HackerOne Data'].get('data')
and cve['HackerOne Data']['data'].get('cve_entry') %}
{{ cve['HackerOne Data']['data']['cve_entry']['severity_count_high'] }}
{% else %}
0
{% endif %}
,
π Critical:
{% if cve['HackerOne Data']
and cve['HackerOne Data'].get('data')
and cve['HackerOne Data']['data'].get('cve_entry') %}
{{ cve['HackerOne Data']['data']['cve_entry']['severity_count_critical'] }}
{% else %}
0
{% endif %}
|
π€ AI-Powered Risk Assessment
{{ cve['Risk Assessment'] }}
β οΈ Patching Priority Rating
Priority |
{% if cve['Priority'] and cve['Priority']['Priority'] %}
{{ cve['Priority']['Priority'] }}
{% else %}
N/A
{% endif %}
|
π Further References
{% if references %}
{% for ref in references %}
{% endfor %}
{% else %}
N/A |
{% endif %}
{% endfor %}