{% if json_data.announcements|length > 0 %}

Announcements

    {% for announcement in json_data.announcements %} {% set color = "#DC3545" if announcement.type == "error" else "#8B4000" if announcement.type == "warning" else "#6C757D" %}
  • {{ announcement.message }}
  • {% endfor %}
{% endif %}

Safety Check Report

Scan Summary

Packages Found (details ↓)

{{ json_data.scanned_packages|length }}

Vulnerabilities Reported (details ↓)

{{ json_data.vulnerabilities|length }}
{% if json_data.ignored_vulnerabilities|length > 0 %}

Found vulnerabilities that were ignored: {{ json_data.ignored_vulnerabilities|length }}

{% endif %}
{% if json_data.report_meta.remediations_recommended > 0 %}

Remediations Suggested (details ↓)

{{ json_data.report_meta.remediations_recommended }}
{% endif %}
Meta-data

Time: {{json_data.report_meta.timestamp}}

Safety version: {{json_data.report_meta.safety_version}}

{{json_data.report_meta.using_sentence}} {% if not json_data.report_meta.api_key %}   Use an API key {% endif %}

Configuration file: {% if json_data.report_meta.policy_file %} {{ json_data.report_meta.policy_file }} (source: {{json_data.report_meta.policy_file_source}} ) {% else %} None {% endif%}

{% if json_data.report_meta.audit_and_monitor %}

Audit and monitor: Enabled. Logging scan results to {{ json_data.report_meta.audit_and_monitor }}

{% endif %}

Scan target: {{json_data.report_meta.scan_target}}

Scan paths:
{{json_data.report_meta.scanned}}

{% if json_data.report_meta.git %} {% if not json_data.report_meta.git.error %}

Scan git context

  origin: {{ json_data.report_meta.git.origin }}

  branch: {{ json_data.report_meta.git.branch }}

{% endif %} {% endif %}

Scanned Packages [ # ]

{% for key, value in json_data.scanned_packages.items() %} {% endfor %}
Package name Found requirements
{{value.name}}
    {% for req in value.requirements %}
  • {{ req }}
  • {% endfor %}

Vulnerabilities Reported [ # ]

{% if json_data.vulnerabilities|length > 0 %}
{% for data in json_data.vulnerabilities %} {% endfor %}
Vulnerability ID Package name Analyzed requirement Vulnerable spec All vulnerable specs Advisory Published date CVE severity
{{ data.vulnerability_id }} {{data.package_name}} {{data.analyzed_requirement}} {{data.vulnerable_spec}} {{data.all_vulnerable_specs}} {{data.advisory}} {{data.published_date}} {{data.CVE}} {% if not json_data.report_meta.api_key and not data.severity %} Use API Key (?) {% else %} {{data.severity}} {% endif %}
{% else %}

No known security vulnerabilities were found. {% if not json_data.report_meta.api_key %} Vulnerabilities may be missing. For comprehensive vulnerability scanning, use an API key {% endif %}

{% endif %}
{% if json_data.ignored_vulnerabilities|length > 0 %}

Vulnerabilities ignored [ # ]

{% for data in json_data.ignored_vulnerabilities %} {% endfor %}
Vulnerability ID Package name Version/Spec Notes Expires
{{ data.vulnerability_id }} {{data.package_name}} {% if data.analyzed_version %} {{ data.analyzed_version }} {% else %} {{ data.analyzed_requirement }} {% endif %} {{data.ignored_reason|default("-", true)}} {{data.ignored_expires|default("-", true)}}
{% endif %} {% if json_data.vulnerabilities|length > 0 %}

Affected Packages [ # ]

{% for key, value in json_data.affected_packages.items() %} {% endfor %}
Package name Version/Requirements Location Insecure versions Latest version without known vulnerabilities More info
{{value.name}} {% if value.version %} {{ value.version }} {% else %}
    {% for req in value.requirements %}
  • {{ req }}
  • {% endfor %}
{% endif %}
    {% for req in value.requirements %}
  • {{ req.found }}
  • {% endfor %}
{{value.insecure_versions}} {{value.latest_version_without_known_vulnerabilities}} More Info
{% endif %}
{% if json_data.vulnerabilities|length > 0 %}

Remediations suggested [ # ]

{% if json_data.remediations|length > 0 %}
{% for package, remediation in json_data.remediations.items() %} {% for req_rem, value in remediation.requirements.items() %} {% endfor %} {% endfor %}
Package name Version/Requirement Vulnerabilities reported Recommended versions Other recommended versions More info
{{ package }} {% if value.version %} {{ value.version }} {% else %} {{ value.requirement }} {% endif %} {{value.vulnerabilities_found}} {% if not json_data.report_meta.api_key and not value.recommended_version %} Use API Key (?) {% else %} {{value.recommended_version}} {% endif %} {% if not json_data.report_meta.api_key and value.other_recommended_versions|length==0 %} Use API Key (?) {% else %} {{value.other_recommended_versions}} {% endif %} {% if value.more_info_url %} {{value.more_info_url}} {% else %} Use API Key (?) {% endif %}
{% else %}

Use an API key to get remediation recommendations (?)

{% endif %}
{% endif %} {% if not json_data.report_meta.api_key %}

Use API Key: Running Safety using an API Key uses a more comprehensive commercial vulnerability database and adds other features such as remediation suggestions and enhanced vulnerability and package information. Learn more and get a free API Key

{% endif %}

Safety Scanner and vulnerability data proudly maintained by PyUp Cybersecurity