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
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
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
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