🧮 CVSS Vulnerability Scoring

Caution

This library is under heavy development.

Getting started

  • Calculates CVSS v2.0, v3.0, v3.1 score based on provided metrics.
  • Easy way to change CVSS vulnerability score

Supported Metrics

CVSS Version Base Metric Extended Metric (Temporal, Environmental...)
CVSS v4.0 🚧 Not implemented 🚧 Not implemented
CVSS v3.1 ✅ 🚧 Not implemented
CVSS v3.0 ✅ 🚧 Not implemented
CVSS v2.0 ✅ 🚧 Not implemented

Usage

Creating a CVSS v3.1 Object

import 'package:cvss_vulnerability_scoring/cvss_vulnerability_scoring.dart';

final cvss = CVSSv31(
  attackVector: AttackVector.network,
  attackComplexity: AttackComplexity.low,
  privilegesRequired: PrivilegesRequired.none,
  userInteraction: UserInteraction.none,
  scope: Scope.unchanged,
  confidentialityImpact: ConfidentialityImpact.high,
  integrityImpact: IntegrityImpact.high,
  availabilityImpact: AvailabilityImpact.high,
);

final baseScore = cvss.calculateBaseScore();
final severity = cvss.baseSeverityRating;

print('CVSS Base Score: $baseScore');  // Output: CVSS Base Score: 9.8
print('Severity Rating: $severity');   // Output: Severity Rating: Critical
print('CVSS Vector String: $cvss');    // Output: CVSS Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Creating a CVSS v3.0 Object

import 'package:cvss_vulnerability_scoring/cvss_vulnerability_scoring.dart';

final cvss = CVSSv30(
  attackVector: AttackVector.network,
  attackComplexity: AttackComplexity.low,
  privilegesRequired: PrivilegesRequired.none,
  userInteraction: UserInteraction.none,
  scope: Scope.unchanged,
  confidentialityImpact: ConfidentialityImpact.high,
  integrityImpact: IntegrityImpact.high,
  availabilityImpact: AvailabilityImpact.high,
);

final baseScore = cvss.calculateBaseScore();
final severity = cvss.baseSeverityRating;

print('CVSS Base Score: $baseScore');
print('Severity Rating: $severity');
print('CVSS Vector String: $cvss');

Creating a CVSS v2.0 Object

import 'package:cvss_vulnerability_scoring/cvss_vulnerability_scoring.dart';

final cvssString = 'CVSS:2.0/AV:N/AC:L/Au:N/C:P/I:P/A:P';
final cvss = CVSSv20.fromString(cvssString);

final baseScore = cvss.calculateBaseScore();

print('CVSS Base Score: $baseScore');
print('CVSS Vector String: $cvss');

Contributing

See the Contributing guide for more information.

License

All of CVSS Vulnerability Scoring library is licensed under the Apache-2.0 license unless otherwise stated.

See the license file for more information.