class NVD::JSONFeeds::Schema::CVSSv3

Represents the `“cvssV3”` value.

Constants

ATTACK_COMPLEXITIES

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

ATTACK_VECTORS

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

CIAS

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

CIA_REQUIREMENTS

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

CONFIDENCES

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

EXPLOIT_CODE_MATURITIES

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

MODIFIED_ATTACK_COMPLEXITIES

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

MODIFIED_ATTACK_VECTORS

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

MODIFIED_CIAS

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

MODIFIED_PRIVILEGES_REQUIRED

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

MODIFIED_SCOPES

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

MODIFIED_USER_INTERACTIONS

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

PRIVILEGES_REQUIRED

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

REMEDIATION_LEVELS

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

SCOPES

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

SEVERITIES

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

USER_INTERACTIONS

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

VERSIONS

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

Public Class Methods

from_json(json) click to toggle source

Maps the parsed JSON to a Symbol Hash for {#initialize}.

@param [Hash{String => Object}] json

The parsed JSON.

@return [Hash{Symbol => Object}]

The Symbol Hash.

@see csrc.nist.gov/schema/nvd/feed/1.1-Beta/cvss-v3.x_beta.json

# File lib/nvd/json_feeds/schema/cvss_v3.rb, line 207
def self.from_json(json)
  {
    version: VERSIONS.fetch(json.fetch('version')),
    vector_string: json.fetch('vectorString'),

    attack_vector: if (value = json['attackVector'])
                     ATTACK_VECTORS.fetch(value)
                   end,

    attack_complexity: if (value = json['attackComplexity'])
                         ATTACK_COMPLEXITIES.fetch(value)
                       end,

    privileges_required: if (value = json['privilegesRequired'])
                           PRIVILEGES_REQUIRED.fetch(value)
                         end,

    user_interaction: if (value = json['userInteraction'])
                        USER_INTERACTIONS.fetch(value)
                      end,

    scope: if (value = json['scope'])
             SCOPES.fetch(value)
           end,

    confidentiality_impact: if (value = json['confidentialityImpact'])
                              CIAS.fetch(value)
                            end,

    integrity_impact: if (value = json['integrityImpact'])
                        CIAS.fetch(value)
                      end,

    availability_impact: if (value = json['availabilityImpact'])
                           CIAS.fetch(value)
                         end,

    base_score: json['baseScore'],
    base_severity: if (value = json['baseSeverity'])
                     SEVERITIES.fetch(value)
                   end,

    exploit_code_maturity: if (value = json['exploitCodeMaturity'])
                             EXPLOIT_CODE_MATURITIES.fetch(value)
                           end,

    remediation_level: if (value = json['remediationLevel'])
                         REMEDIATION_LEVELS.fetch(value)
                       end,

    report_confidence: if (value = json['reportConfidence'])
                         CONFIDENCES.fetch(value)
                       end,

    temporal_score: json['temporalScore'],

    temporal_severity: if (value = json['temporalSeverity'])
                         SEVERITIES.fetch(value)
                       end,

    confidentiality_requirement: if (value = json['confidentialityRequirement'])
                                   CIA_REQUIREMENTS.fetch(value)
                                 end,

    integrity_requirement: if (value = json['integrityRequirement'])
                             CIA_REQUIREMENTS.fetch(value)
                           end,

    availability_requirement: if (value = json['availabilityRequirement'])
                                CIA_REQUIREMENTS.fetch(value)
                              end,

    modified_attack_vector: if (value = json['modifiedAttackVector'])
                              MODIFIED_ATTACK_VECTORS.fetch(value)
                            end,

    modified_attack_complexity: if (value = json['modifiedAttackComplexity'])
                                  MODIFIED_ATTACK_COMPLEXITIES.fetch(value)
                                end,

    modified_privileges_required: if (value = json['modifiedPrivilegesRequired'])
                                    MODIFIED_PRIVILEGES_REQUIRED.fetch(value)
                                  end,

    modified_user_interaction: if (value = json['modifiedUserInteraction'])
                                 MODIFIED_USER_INTERACTIONS.fetch(value)
                               end,

    modified_scope: if (value = json['modifiedScope'])
                      SCOPES.fetch(value)
                    end,

    modified_confidentiality_impact: if (value = json['modifiedConfidentialityImpact'])
                                       MODIFIED_CIA.fetch(value)
                                     end,

    modified_integrity_impact: if (value = json['modifiedIntegrityImpact'])
                                 MODIFIED_CIA.fetch(value)
                               end,

    modified_availability_impact: if (value = json['modifiedAvailabilityImpact'])
                                    MODIFIED_CIA.fetch(value)
                                  end,

    environmental_score:    json['environmentalScore'],
    environmental_severity: json['environmentalSeverity']
  }
end
load(json) click to toggle source

Loads the CVSS v3 object from the parsed JSON.

@param [Hash{String => Object}] json

The parsed JSON.

@return [CVSSv3]

The CVSSv3 V3 object.
# File lib/nvd/json_feeds/schema/cvss_v3.rb, line 325
def self.load(json)
  new(**from_json(json))
end
new(version: , vector_string: , base_score: , base_severity: , attack_vector: nil, attack_complexity: nil, privileges_required: nil, user_interaction: nil, scope: nil, confidentiality_impact: nil, integrity_impact: nil, availability_impact: nil, exploit_code_maturity: nil, remediation_level: nil, report_confidence: nil, temporal_score: nil, temporal_severity: nil, confidentiality_requirement: nil, integrity_requirement: nil, availability_requirement: nil, modified_attack_vector: nil, modified_attack_complexity: nil, modified_privileges_required: nil, modified_user_interaction: nil, modified_scope: nil, modified_confidentiality_impact: nil, modified_integrity_impact: nil, modified_availability_impact: nil, environmental_score: nil, environmental_severity: nil) click to toggle source

Initializes the CVSS v3 object.

# File lib/nvd/json_feeds/schema/cvss_v3.rb, line 133
def initialize(version: ,
               vector_string: ,
               base_score: ,
               base_severity: ,
               attack_vector: nil,
               attack_complexity: nil,
               privileges_required: nil,
               user_interaction: nil,
               scope: nil,
               confidentiality_impact: nil,
               integrity_impact: nil,
               availability_impact: nil,
               exploit_code_maturity: nil,
               remediation_level: nil,
               report_confidence: nil,
               temporal_score: nil,
               temporal_severity: nil,
               confidentiality_requirement: nil,
               integrity_requirement: nil,
               availability_requirement: nil,
               modified_attack_vector: nil,
               modified_attack_complexity: nil,
               modified_privileges_required: nil,
               modified_user_interaction: nil,
               modified_scope: nil,
               modified_confidentiality_impact: nil,
               modified_integrity_impact: nil,
               modified_availability_impact: nil,
               environmental_score: nil,
               environmental_severity: nil)
  @version = version
  @vector_string = vector_string
  @base_score = base_score
  @base_severity = base_severity

  @attack_vector = attack_vector
  @attack_complexity = attack_complexity
  @privileges_required = privileges_required
  @user_interaction = user_interaction
  @scope = scope
  @confidentiality_impact = confidentiality_impact
  @integrity_impact = integrity_impact
  @availability_impact = availability_impact
  @exploit_code_maturity = exploit_code_maturity
  @remediation_level = remediation_level
  @report_confidence = report_confidence
  @temporal_score = temporal_score
  @temporal_severity = temporal_severity
  @confidentiality_requirement = confidentiality_requirement
  @integrity_requirement = integrity_requirement
  @availability_requirement = availability_requirement
  @modified_attack_vector = modified_attack_vector
  @modified_attack_complexity = modified_attack_complexity
  @modified_privileges_required = modified_privileges_required
  @modified_user_interaction = modified_user_interaction
  @modified_scope = modified_scope
  @modified_confidentiality_impact = modified_confidentiality_impact
  @modified_integrity_impact = modified_integrity_impact
  @modified_availability_impact = modified_availability_impact
  @environmental_score = environmental_score
  @environmental_severity = environmental_severity
end