This Ruby gem helps you to process the vector of the Common Vulnerability Scoring System (https://www.first.org/cvss/specification-document).\n Besides calculating the Base, Temporal and Environmental Score, you are able to extract the selected option.\n\n Homepage is still in progress and will be published soon (along with full documentation).\n ## Usage\n\n ```ruby\n require 'cvss_suite'\n\n cvss = CvssSuite.new('AV:A/AC:M/Au:S/C:P/I:P/A:P/E:POC/RL:TF/RC:UC/CDP:L/TD:M/CR:M/IR:M/AR:M')\n\n vector = cvss.vector # 'AV:A/AC:M/Au:S/C:P/I:P/A:P/E:POC/RL:TF/RC:UC/CDP:L/TD:M/CR:M/IR:M/AR:M'\n version = cvss.version # 2\n\n # Scores\n base_score = cvss.base_score # 4.9\n temporal_score = cvss.temporal_score # 3.6\n environmental_score = cvss.environmental_score # 3.2\n overall_score = cvss.overall_score # 3.2\n\n # Available options\n access_vector = cvss.base.access_vector.name # 'Access Vector'\n remediation_level = cvss.temporal.remediation_level.name # 'Remediation Level'\n\n access_vector.choices.each do |choice|\n choice[:name] # 'Local', 'Adjacent Network', 'Network'\n choice[:abbreviation] # 'L', 'A', 'N'\n choice[:selected] # false, true, false\n end\n\n # Selected options\n cvss.base.access_vector.selected_choice[:name] # Adjacent Network\n cvss.temporal.remediation_level.selected_choice[:name] # Temporary Fix\n\n # Exceptions\n\n CvssSuite.new('random_string') # will throw a RuntimeError: Vector is not valid!\n CvssSuite.new() # will throw a ArgumentError\n\n cvss = CvssSuite.new('AV:N/AC:P/C:P/AV:U/RL:OF/RC:C') # invalid vector, authentication is missing\n\n version = cvss.version # 2\n\n cvss.base_score # will throw a RuntimeError: Vector is not valid!\n ```

Required Ruby Version

>= 0

Authors

Oliver Hamboerger

Versions

  1. 4.1.4 July 05, 2026 (30.5 KB)
  2. 4.1.3 April 26, 2026 (30 KB)
  3. 4.1.2 December 05, 2025 (30 KB)
  4. 4.1.1 May 11, 2025 (30 KB)
  5. 4.1.0 April 27, 2025 (29.5 KB)
  6. 1.0.3 April 15, 2016 (4.72 MB)
Show all versions (34 total)

SHA 256 checksum