{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "JSON Schema for Common Vulnerability Scoring System version 2.0",
    "copyright": "Copyright (c) 2017, Forum of Incident Response and Security Teams, Inc. All rights reserved.",
    "id": "https://www.first.org/cvss/cvss-v2.0.json?20170531",
    "type": "object",
    "definitions": {
        "accessVectorType": {
            "type": "string",
            "enum": [
                "NETWORK",
                "ADJACENT_NETWORK",
                "LOCAL"
            ]
        },
        "accessComplexityType": {
            "type": "string",
            "enum": [
                "HIGH",
                "MEDIUM",
                "LOW"
            ]
        },
        "authenticationType": {
            "type": "string",
            "enum": [
                "MULTIPLE",
                "SINGLE",
                "NONE"
            ]
        },
        "ciaType": {
            "type": "string",
            "enum": [
                "NONE",
                "PARTIAL",
                "COMPLETE"
            ]
        },
        "exploitabilityType": {
            "type": "string",
            "enum": [
                "UNPROVEN",
                "PROOF_OF_CONCEPT",
                "FUNCTIONAL",
                "HIGH",
                "NOT_DEFINED"
            ]
        },
        "remediationLevelType": {
            "type": "string",
            "enum": [
                "OFFICIAL_FIX",
                "TEMPORARY_FIX",
                "WORKAROUND",
                "UNAVAILABLE",
                "NOT_DEFINED"
            ]
        },
        "reportConfidenceType": {
            "type": "string",
            "enum": [
                "UNCONFIRMED",
                "UNCORROBORATED",
                "CONFIRMED",
                "NOT_DEFINED"
            ]
        },
        "collateralDamagePotentialType": {
            "type": "string",
            "enum": [
                "NONE",
                "LOW",
                "LOW_MEDIUM",
                "MEDIUM_HIGH",
                "HIGH",
                "NOT_DEFINED"
            ]
        },
        "targetDistributionType": {
            "type": "string",
            "enum": [
                "NONE",
                "LOW",
                "MEDIUM",
                "HIGH",
                "NOT_DEFINED"
            ]
        },
        "ciaRequirementType": {
            "type": "string",
            "enum": [
                "LOW",
                "MEDIUM",
                "HIGH",
                "NOT_DEFINED"
            ]
        },
        "scoreType": {
            "type": "number",
            "minimum": 0,
            "maximum": 10
        }
    },
    "properties": {
        "version": {
            "description": "CVSS Version",
            "type": "string",
            "enum": [
                "2.0"
            ]
        },
        "vectorString": {
            "type": "string",
            "pattern": "^((AV:[NAL]|AC:[LMH]|Au:[MSN]|[CIA]:[NPC]|E:(U|POC|F|H|ND)|RL:(OF|TF|W|U|ND)|RC:(UC|UR|C|ND)|CDP:(N|L|LM|MH|H|ND)|TD:(N|L|M|H|ND)|[CIA]R:(L|M|H|ND))/)*(AV:[NAL]|AC:[LMH]|Au:[MSN]|[CIA]:[NPC]|E:(U|POC|F|H|ND)|RL:(OF|TF|W|U|ND)|RC:(UC|UR|C|ND)|CDP:(N|L|LM|MH|H|ND)|TD:(N|L|M|H|ND)|[CIA]R:(L|M|H|ND))$"
        },
        "accessVector": {
            "$ref": "#/definitions/accessVectorType"
        },
        "accessComplexity": {
            "$ref": "#/definitions/accessComplexityType"
        },
        "authentication": {
            "$ref": "#/definitions/authenticationType"
        },
        "confidentialityImpact": {
            "$ref": "#/definitions/ciaType"
        },
        "integrityImpact": {
            "$ref": "#/definitions/ciaType"
        },
        "availabilityImpact": {
            "$ref": "#/definitions/ciaType"
        },
        "baseScore": {
            "$ref": "#/definitions/scoreType"
        },
        "exploitability": {
            "$ref": "#/definitions/exploitabilityType"
        },
        "remediationLevel": {
            "$ref": "#/definitions/remediationLevelType"
        },
        "reportConfidence": {
            "$ref": "#/definitions/reportConfidenceType"
        },
        "temporalScore": {
            "$ref": "#/definitions/scoreType"
        },
        "collateralDamagePotential": {
            "$ref": "#/definitions/collateralDamagePotentialType"
        },
        "targetDistribution": {
            "$ref": "#/definitions/targetDistributionType"
        },
        "confidentialityRequirement": {
            "$ref": "#/definitions/ciaRequirementType"
        },
        "integrityRequirement": {
            "$ref": "#/definitions/ciaRequirementType"
        },
        "availabilityRequirement": {
            "$ref": "#/definitions/ciaRequirementType"
        },
        "environmentalScore": {
            "$ref": "#/definitions/scoreType"
        }
    },
    "required": [
        "version",
        "vectorString",
        "baseScore"
    ]
}