{% 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' %}

{{ cve_id }}

πŸ” 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)

{% if cve['EPSS Data'] and cve['EPSS Data'].get('data') %} {% else %} {% endif %}
Score {{ "%.2f" % (cve['EPSS Data']['data'][0]['epss'] * 100) }}% Probability of exploitation N/A

πŸ›‘οΈ 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'] %} {% endfor %}
{{ poc['created_at']|datetimeformat }} {{ poc['html_url'] }}
{% endif %} {% if cve['VulnCheck Data']['data'] %}

VulnCheck

{% for item in cve['VulnCheck Data']['data'] %} {% for xdb in item['vulncheck_xdb'] %} {% endfor %} {% endfor %}
{{ xdb['date_added']|datetimeformat }} {{ xdb['clone_ssh_url'] .replace('git@github.com:', 'https://github.com/') .replace('.git', '') }}
{% endif %} {% if cve['ExploitDB Data'] %}

Exploit-DB

{% for item in cve['ExploitDB Data'] %} {% endfor %}
{{ item['date']|datetimeformat }} https://www.exploit-db.com/exploits/{{ item['id'] }}
{% endif %}

Other

{% if cve['PacketStorm Data']['packetstorm_url'] %} {% endif %} {% if cve['Nuclei Data']['file_path'] %} {% endif %}
PacketStorm {{ cve['PacketStorm Data']['packetstorm_url'] }}
Nuclei {{ cve['Nuclei Data']['file_path'] }}

πŸ•΅οΈ 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 %} {% endif %}
N/A
{% endfor %}