{% match advisory.metadata.collection %} {% when Some with (collection) %} HistoryEditJSON (OSV) {% when None %} {% endmatch %}

{% if advisory.withdrawn() %} {{ advisory.id() }} {% else %} {{ advisory.id() }} {% endif %}

{{ rendered_title|safe }}
{% if advisory.withdrawn() %}

This advisory has been withdrawn and should be ignored. It is kept only for reference.


{% endif %}
Reported
Issued
{% if cdate != mdate %} {% endif %}
Package
{% match advisory.metadata.collection %} {% when Some with (collection) %} {% if collection.to_string() == "crates" %} {{ advisory.metadata.package }} (crates.io) {% else %} {{ advisory.metadata.package }} {% endif %} {% when None %} {{ advisory.metadata.package }} {% endmatch %}
Type
{% match advisory.metadata.informational %} {% when Some with (informational) %} INFO {{ informational.to_string()|capitalize }} {% when None %} Vulnerability {% endmatch %}
{% if advisory.metadata.categories.len() > 0 %}
Categories
{% endif %} {% if advisory.metadata.keywords.len() > 0 %}
Keywords
{% for keyword in advisory.metadata.keywords %} #{{ keyword.as_str()|safe_keyword }} {% endfor %}
{% endif %} {% if advisory.metadata.aliases.len() > 0 %}
Aliases
    {% for id in advisory.metadata.aliases %}
  • {% match id.url() %} {% when Some with (url) %} {{ id }} {% when None %} {{ id }} {% endmatch %}
  • {% endfor %}
{% endif %} {% if advisory.metadata.url.is_some() || !advisory.metadata.references.is_empty() %}
References
{% endif %} {% if advisory.metadata.related.len() > 0 %}
    {% for id in advisory.metadata.related %}
  • {% match id.url() %} {% when Some with (url) %} {{ id }} {% when None %} {{ id }} {% endmatch %}
  • {% endfor %}
{% endif %} {% match advisory.metadata.cvss %} {% when Some with (cvss) %}
CVSS Score
{{ cvss.score().value() }} {{ advisory.severity().unwrap()|upper }}
CVSS Details
{% match cvss.av %} {% when Some with (av) %}
Attack vector
{{ "{:?}"|format(av) }}
{% when None %} {% endmatch %} {% match cvss.ac %} {% when Some with (ac) %}
Attack complexity
{{ "{:?}"|format(ac) }}
{% when None %} {% endmatch %} {% match cvss.pr %} {% when Some with (pr) %}
Privileges required
{{ "{:?}"|format(pr) }}
{% when None %} {% endmatch %} {% match cvss.ui %} {% when Some with (ui) %}
User interaction
{{ "{:?}"|format(ui) }}
{% when None %} {% endmatch %} {% match cvss.s %} {% when Some with (s) %}
Scope
{{ "{:?}"|format(s) }}
{% when None %} {% endmatch %} {% match cvss.c %} {% when Some with (c) %}
Confidentiality
{{ "{:?}"|format(c) }}
{% when None %} {% endmatch %} {% match cvss.i %} {% when Some with (i) %}
Integrity
{{ "{:?}"|format(i) }}
{% when None %} {% endmatch %} {% match cvss.a %} {% when Some with (a) %}
Availability
{{ "{:?}"|format(a) }}
{% when None %} {% endmatch %}
CVSS Vector
{{ cvss }}
{% when None %} {% endmatch %}
Patched
{% if advisory.versions.patched().len() == 0 %} no patched versions {% else %}
    {% for patched in advisory.versions.patched() %}
  • {{ patched }}
  • {% endfor %}
{% endif %}
{% if advisory.versions.unaffected().len() > 0 %}
Unaffected
    {% for unaffected in advisory.versions.unaffected() %}
  • {{ unaffected }}
  • {% endfor %}
{% endif %} {% match advisory.affected %} {% when Some with (affected) %} {% if affected.arch.len() > 0 %}
Affected Architectures
    {% for arch in affected.arch %}
  • {{ arch }}
  • {% endfor %}
{% endif %} {% if affected.os.len() > 0 %}
Affected OSes
    {% for os in affected.os %}
  • {{ os }}
  • {% endfor %}
{% endif %} {% when None %} {% endmatch %}
{% match advisory.affected %} {% when Some with (affected) %} {% if affected.functions.len() > 0 %}
Affected Functions
Version
{% for function in affected.functions %}
{{ function.0 }}
    {% for version_req in function.1 %}
  • {{ version_req }}
  • {% endfor %}
{% endfor %}
{% endif %} {% when None %} {% endmatch %}

Description

{{ rendered_description|safe }}

Advisory available under {{ advisory.metadata.license.spdx() }} license. {% if advisory.metadata.license == rustsec::advisory::License::CcBy40 %} {# License requires attribution, make it explicit #} {% match advisory.metadata.url %} {% when Some with (url) %} Source: {{ url }} {% when None %} {% endmatch %} {% endif %}