Skip to main content

Module v4

Module v4 

Source
Expand description

CVSS v4 parsing and scoring.

§Examples

Parse CVSS v4 vector string, then get a Metric by Name:

// parse vector string
let v: Vector = "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H".parse()?;

// get metric
let metric = v.get(Name::AttackVector);

// check result
assert_eq!(metric, Metric::AttackVector(AttackVector::Network));

Build Vec of metric names:

// parse vector string
let v: Vector = "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H".parse()?;

// get metric names
let names: Vec<Name> = v.into_iter().map(Name::from).collect();

// check result
assert_eq!(names, vec![
  Name::AttackVector,
  Name::AttackComplexity,
  Name::AttackRequirements,
  Name::PrivilegesRequired,
  Name::UserInteraction,
  Name::VulnerableSystemConfidentialityImpact,
  Name::VulnerableSystemIntegrityImpact,
  Name::VulnerableSystemAvailabilityImpact,
  Name::SubsequentSystemConfidentialityImpact,
  Name::SubsequentSystemIntegrityImpact,
  Name::SubsequentSystemAvailabilityImpact,
]);

Get score for CVSS v4 vector string:

// parse vector string
let v: Vector = "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N".parse()?;

// get score
let score = Score::from(v);

// check result
assert_eq!(score, Score::from(6.9));

Structs§

MacroVector
CVSS v4 macro vector.
Scores
Macro vector and score of CVSS v4 vector.
Vector
CVSS v4 vector.
VectorIterator
Vector iterator.

Enums§

AttackComplexity
Metric::AttackComplexity (AC) values.
AttackRequirements
Metric::AttackRequirements (AT) values.
AttackVector
Metric::AttackVector (AV) values.
Automatable
Metric::Automatable (AU) values.
ExploitMaturity
Metric::ExploitMaturity (E) values.
Group
Metric group.
Impact
Impact metric (VC, VI, VA, SC, SI, SA) values.
Metric
Vector component.
ModifiedAttackComplexity
Metric::ModifiedAttackComplexity (MAC) values.
ModifiedAttackRequirements
Metric::ModifiedAttackRequirements (MAT) values.
ModifiedAttackVector
Metric::ModifiedAttackVector (MAV) values.
ModifiedImpact
Modified Impact metric (MVC, MVI, MVA, MSC) values.
ModifiedPrivilegesRequired
Metric::ModifiedPrivilegesRequired (MPR) values.
ModifiedSubsequentImpact
Modified Subsequent Impact metric (MSI, MSA) values.
ModifiedUserInteraction
Metric::ModifiedUserInteraction (MUI) values.
Name
Metric name.
Nomenclature
Vector nomenclature.
PrivilegesRequired
Metric::PrivilegesRequired (PR) values.
ProviderUrgency
Metric::ProviderUrgency (U) values.
Recovery
Metric::Recovery (R) values.
Requirement
Requirement metric (CR, IR, AR) values.
Safety
Metric::Safety (S) values.
UserInteraction
Metric::UserInteraction (UI) values.
ValueDensity
Metric::ValueDensity (V) values.
VulnerabilityResponseEffort
Metric::VulnerabilityResponseEffort (RE) values.