class AvailabilityRequirement(BaseEnum): """ Vector: AR """ NOT_DEFINED = NotDefined(D("1")) HIGH = D("1.5") MEDIUM = D("1") LOW = D("0.5")
class ConfidentialityRequirement(BaseEnum): """ Vector: CR """ NOT_DEFINED = NotDefined(D("1")) HIGH = D("1.5") MEDIUM = D("1") LOW = D("0.5")
class IntegrityRequirement(BaseEnum): """ Vector: IR """ NOT_DEFINED = NotDefined(D("1")) HIGH = D("1.5") MEDIUM = D("1") LOW = D("0.5")
class ReportConfidence(BaseEnum): """ Vector: RC """ NOT_DEFINED = NotDefined(D("1")) CONFIRMED = D("1") REASONABLE = D("0.96") UNKNOWN = D("0.92")
class RemediationLevel(BaseEnum): """ Vector: RL """ NOT_DEFINED = NotDefined(D("1")) UNAVAILABLE = D("1") WORKAROUND = D("0.97") TEMPORARY_FIX = D("0.96") OFFICIAL_FIX = D("0.95")
class ExploitCodeMaturity(BaseEnum): """ Vector: E """ NOT_DEFINED = NotDefined(D("1")) HIGH = D("1") FUNCTIONAL = D("0.97") PROOF_OF_CONCEPT = D("0.94") UNPROVEN = D("0.91")
class TargetDistribution(BaseEnum): """ Vector: TD """ NONE = D("0") LOW = D("0.25") MEDIUM = D("0.75") HIGH = D("1") NOT_DEFINED = NotDefined(D("1"))
class ReportConfidence(BaseEnum): """ Vector: RC """ UNCONFIRMED = D("0.9") UNCORROBORATED = D("0.95") CONFIRMED = D("1") NOT_DEFINED = NotDefined(D("1")) _vectors = {"uc": "UNCONFIRMED", "ur": "UNCORROBORATED"}
class RemediationLevel(BaseEnum): """ Vector: RL """ OFFICIAL_FIX = D("0.87") TEMPORARY_FIX = D("0.90") WORKAROUND = D("0.95") UNAVAILABLE = D("1") NOT_DEFINED = NotDefined(D("1")) _vectors = {"of": "OFFICIAL_FIX", "tf": "TEMPORARY_FIX"}
class Exploitability(BaseEnum): """ Vector: E """ UNPROVEN = D("0.85") PROOF_OF_CONCEPT = D("0.9") FUNCTIONAL = D("0.95") HIGH = D("1") NOT_DEFINED = NotDefined(D("1")) _vectors = {"poc": "PROOF_OF_CONCEPT"}
class CollateralDamagePotential(BaseEnum): """ Vector: CDP """ NONE = D("0") LOW = D("0.1") LOW_MEDIUM = D("0.3") MEDIUM_HIGH = D("0.4") HIGH = D("0.5") NOT_DEFINED = NotDefined(D("0")) _vectors = {"lm": "LOW_MEDIUM", "mh": "MEDIUM_HIGH"}
class TempEnum(BaseEnum): SOME_VALUE = 1 NOT_DEFINED = NotDefined(1)
LOW = D("0.5") class AvailabilityRequirement(BaseEnum): """ Vector: AR """ NOT_DEFINED = NotDefined(D("1")) HIGH = D("1.5") MEDIUM = D("1") LOW = D("0.5") ModifiedAttackVector = AttackVector.extend( "ModifiedAttackVector", {"NOT_DEFINED": NotDefined()}, "Vector: MAV" ) ModifiedAttackComplexity = AttackComplexity.extend( "ModifiedAttackComplexity", {"NOT_DEFINED": NotDefined()}, "Vector: MAC" ) ModifiedPrivilegesRequired = PrivilegeRequired.extend( "ModifiedPrivilegesRequired", {"NOT_DEFINED": NotDefined()}, "Vector: MPR" ) ModifiedUserInteraction = UserInteraction.extend( "ModifiedUserInteraction", {"NOT_DEFINED": NotDefined()}, "Vector: MUI" ) ModifiedScope = Scope.extend(
MEDIUM = D("1") LOW = D("0.5") class AvailabilityRequirement(BaseEnum): """ Vector: AR """ NOT_DEFINED = NotDefined(D("1")) HIGH = D("1.5") MEDIUM = D("1") LOW = D("0.5") ModifiedAttackVector = AttackVector.extend("ModifiedAttackVector", {"NOT_DEFINED": NotDefined()}, "Vector: MAV") ModifiedAttackComplexity = AttackComplexity.extend( "ModifiedAttackComplexity", {"NOT_DEFINED": NotDefined()}, "Vector: MAC") ModifiedPrivilegesRequired = PrivilegeRequired.extend( "ModifiedPrivilegesRequired", {"NOT_DEFINED": NotDefined()}, "Vector: MPR") ModifiedUserInteraction = UserInteraction.extend("ModifiedUserInteraction", {"NOT_DEFINED": NotDefined()}, "Vector: MUI") ModifiedScope = Scope.extend("ModifiedScope", {"NOT_DEFINED": NotDefined()}, "Vector: MS")