GitHub
ESC

Version Notes

CVSS v2.0

CVSS v3.0 vs v3.1

Both versions are handled by the same CVSS::V3::Vector class. They share metric definitions and the base scoring formula. They differ in two places:

  1. RoundUp algorithm

    • v3.0: ceiling(input × 10) / 10
    • v3.1: integer-space spec algorithm that avoids floating-point edge cases on values like 4.65.
  2. Modified Impact polynomial (Environmental score, Scope:Changed)

    • v3.0: 7.52 × (ISS - 0.029) - 3.25 × (ISS - 0.02)^15
    • v3.1: 7.52 × (ISS - 0.029) - 3.25 × (ISS × 0.9731 - 0.02)^13

vec.version always returns the parsed version string ("3.0" or "3.1"); round-trips via to_s preserve it.

CVSS v4.0

Cross-version comparisons

Vector includes Comparable(Vector) and orders by base_score, so <, >, and sort all work across versions. Equality, however, is structural — a v3 vector and a v4 vector are never == even when their scores are identical.