ae-cvss-calculator
Version:
A CVSS vector modeling and score calculation implementation for all CVSS versions by {metæffekt}.
173 lines (172 loc) • 7.57 kB
TypeScript
import { ComponentCategory, CvssVector, V4ScoreResult, VectorComponent, VectorComponentValue } from "../CvssVector";
import { Cvss4P0MacroVector } from "./Cvss4P0MacroVector";
export declare class Cvss4P0 extends CvssVector<V4ScoreResult> {
constructor(initialVector?: string);
getRegisteredComponents(): Map<ComponentCategory, VectorComponent<VectorComponentValue>[]>;
getVectorStringOrderProperties(): Map<ComponentCategory, VectorComponent<VectorComponentValue>[]>;
getVectorPrefix(): string;
getVectorName(): string;
fillAverageVector(): void;
fillRandomBaseVector(): void;
protected calculateScoresInternal(normalize?: boolean): V4ScoreResult;
toString(forceAllComponents?: boolean, categories?: Map<ComponentCategory, VectorComponent<VectorComponentValue>[]>, showOnlyDefinedComponents?: boolean): string;
calculateOverallScore(): number;
private readonly ROUNDING_EPSILON;
private roundToDecimalPlaces;
private generateCvssPermutations;
private severityDistance;
private severityDistanceBetweenComponents;
severityDistanceToVector(other: Cvss4P0): number;
calculateSeverityDistancesByComparingToHighestSeverityVectors(highestSeverityVectors: Cvss4P0[]): Map<string, number>;
/**
CVSS Nomenclature CVSS Metrics Used
CVSS-B Base metrics
CVSS-BE Base and Environmental metrics
CVSS-BT Base and Threat metrics
CVSS-BTE Base, Threat, Environmental metrics
*/
getNomenclature(): string;
getMacroVector(): Cvss4P0MacroVector;
isBaseFullyDefined(): boolean;
isAnyBaseDefined(): boolean;
isThreatFullyDefined(): boolean;
isAnyThreatDefined(): boolean;
isAnyEnvironmentalDefined(): boolean;
private getJsonSchemaSeverity;
createJsonSchema(): any;
}
export type JSONSchemaForCommonVulnerabilityScoringSystemVersion40 = JSONSchemaForCommonVulnerabilityScoringSystemVersion401 & JSONSchemaForCommonVulnerabilityScoringSystemVersion402;
export type JSONSchemaForCommonVulnerabilityScoringSystemVersion401 = ({
baseScore?: NoneScoreType;
baseSeverity?: NoneSeverityType;
[k: string]: unknown;
} | {
baseScore?: LowScoreType;
baseSeverity?: LowSeverityType;
[k: string]: unknown;
} | {
baseScore?: MediumScoreType;
baseSeverity?: MediumSeverityType;
[k: string]: unknown;
} | {
baseScore?: HighScoreType;
baseSeverity?: HighSeverityType;
[k: string]: unknown;
} | {
baseScore?: CriticalScoreType;
baseSeverity?: CriticalSeverityType;
[k: string]: unknown;
}) & ({
threatScore?: NoneScoreType;
threatSeverity?: NoneSeverityType;
[k: string]: unknown;
} | {
threatScore?: LowScoreType;
threatSeverity?: LowSeverityType;
[k: string]: unknown;
} | {
threatScore?: MediumScoreType;
threatSeverity?: MediumSeverityType;
[k: string]: unknown;
} | {
threatScore?: HighScoreType;
threatSeverity?: HighSeverityType;
[k: string]: unknown;
} | {
threatScore?: CriticalScoreType;
threatSeverity?: CriticalSeverityType;
[k: string]: unknown;
}) & ({
environmentalScore?: NoneScoreType;
environmentalSeverity?: NoneSeverityType;
[k: string]: unknown;
} | {
environmentalScore?: LowScoreType;
environmentalSeverity?: LowSeverityType;
[k: string]: unknown;
} | {
environmentalScore?: MediumScoreType;
environmentalSeverity?: MediumSeverityType;
[k: string]: unknown;
} | {
environmentalScore?: HighScoreType;
environmentalSeverity?: HighSeverityType;
[k: string]: unknown;
} | {
environmentalScore?: CriticalScoreType;
environmentalSeverity?: CriticalSeverityType;
[k: string]: unknown;
});
export type NoneScoreType = number;
export type NoneSeverityType = "NONE";
export type LowScoreType = number;
export type LowSeverityType = "LOW";
export type MediumScoreType = number;
export type MediumSeverityType = "MEDIUM";
export type HighScoreType = number;
export type HighSeverityType = "HIGH";
export type CriticalScoreType = number;
export type CriticalSeverityType = "CRITICAL";
export type AttackVectorType = "NETWORK" | "ADJACENT" | "LOCAL" | "PHYSICAL";
export type AttackComplexityType = "HIGH" | "LOW";
export type AttackRequirementsType = "NONE" | "PRESENT";
export type PrivilegesRequiredType = "HIGH" | "LOW" | "NONE";
export type UserInteractionType = "NONE" | "PASSIVE" | "ACTIVE";
export type VulnCiaType = "NONE" | "LOW" | "HIGH";
export type SubCiaType = "NONE" | "LOW" | "HIGH";
export type ExploitMaturityType = "UNREPORTED" | "PROOF_OF_CONCEPT" | "ATTACKED" | "NOT_DEFINED";
export type CiaRequirementType = "LOW" | "MEDIUM" | "HIGH" | "NOT_DEFINED";
export type ModifiedAttackVectorType = "NETWORK" | "ADJACENT" | "LOCAL" | "PHYSICAL" | "NOT_DEFINED";
export type ModifiedAttackComplexityType = "HIGH" | "LOW" | "NOT_DEFINED";
export type ModifiedAttackRequirementsType = "NONE" | "PRESENT" | "NOT_DEFINED";
export type ModifiedPrivilegesRequiredType = "HIGH" | "LOW" | "NONE" | "NOT_DEFINED";
export type ModifiedUserInteractionType = "NONE" | "PASSIVE" | "ACTIVE" | "NOT_DEFINED";
export type ModifiedVulnCiaType = "NONE" | "LOW" | "HIGH" | "NOT_DEFINED";
export type ModifiedSubCType = "NEGLIGIBLE" | "LOW" | "HIGH" | "NOT_DEFINED";
export type ModifiedSubIaType = "NEGLIGIBLE" | "LOW" | "HIGH" | "SAFETY" | "NOT_DEFINED";
export type SafetyType = "NEGLIGIBLE" | "PRESENT" | "NOT_DEFINED";
export type AutomatableType = "NO" | "YES" | "NOT_DEFINED";
export type RecoveryType = "AUTOMATIC" | "USER" | "IRRECOVERABLE" | "NOT_DEFINED";
export type ValueDensityType = "DIFFUSE" | "CONCENTRATED" | "NOT_DEFINED";
export type VulnerabilityResponseEffortType = "LOW" | "MODERATE" | "HIGH" | "NOT_DEFINED";
export type ProviderUrgencyType = "CLEAR" | "GREEN" | "AMBER" | "RED" | "NOT_DEFINED";
export interface JSONSchemaForCommonVulnerabilityScoringSystemVersion402 {
/**
* CVSS Version
*/
version: "4.0";
vectorString: string;
attackVector?: AttackVectorType;
attackComplexity?: AttackComplexityType;
attackRequirements?: AttackRequirementsType;
privilegesRequired?: PrivilegesRequiredType;
userInteraction?: UserInteractionType;
vulnConfidentialityImpact?: VulnCiaType;
vulnIntegrityImpact?: VulnCiaType;
vulnAvailabilityImpact?: VulnCiaType;
subConfidentialityImpact?: SubCiaType;
subIntegrityImpact?: SubCiaType;
subAvailabilityImpact?: SubCiaType;
exploitMaturity?: ExploitMaturityType;
confidentialityRequirement?: CiaRequirementType;
integrityRequirement?: CiaRequirementType;
availabilityRequirement?: CiaRequirementType;
modifiedAttackVector?: ModifiedAttackVectorType;
modifiedAttackComplexity?: ModifiedAttackComplexityType;
modifiedAttackRequirements?: ModifiedAttackRequirementsType;
modifiedPrivilegesRequired?: ModifiedPrivilegesRequiredType;
modifiedUserInteraction?: ModifiedUserInteractionType;
modifiedVulnConfidentialityImpact?: ModifiedVulnCiaType;
modifiedVulnIntegrityImpact?: ModifiedVulnCiaType;
modifiedVulnAvailabilityImpact?: ModifiedVulnCiaType;
modifiedSubConfidentialityImpact?: ModifiedSubCType;
modifiedSubIntegrityImpact?: ModifiedSubIaType;
modifiedSubAvailabilityImpact?: ModifiedSubIaType;
Safety?: SafetyType;
Automatable?: AutomatableType;
Recovery?: RecoveryType;
valueDensity?: ValueDensityType;
vulnerabilityResponseEffort?: VulnerabilityResponseEffortType;
providerUrgency?: ProviderUrgencyType;
[k: string]: unknown;
}