marmelatze / cvss
Common Vulnerability Scoring System Version
Requires
- php: >=5.5.9
- symfony/options-resolver: ^2.3 || ^3.0 || ^4.0 || ^5.0
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2024-09-21 17:26:33 UTC
README
Common Vulnerability Scoring System (CVSS) provides a robust and useful scoring system for IT vulnerabilities.
See https://www.first.org/cvss for more informations.
Documentation
1 - Installation
Dowload the CVSS library using composer:
composer require ywh/cvss
2 - Usage
2.1 Vector parser
First, you need to give the CVSSv3 calculator a valid CVSS vector:
use YWH\Cvss; $cvss = new Cvss3(); $cvss->setVector('CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N');
Base metrics (AV,AC,PR,UI,S,C,I and A) must be defined.
An undefined metric will throw the following error:
Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException
A missing metric will throw the following error:
Symfony\Component\OptionsResolver\Exception\MissingOptionsException
A wrong metric value will throw the following error:
Symfony\Component\OptionsResolver\Exception\InvalidOptionsException
Once the vector is valid, you will able to get several informations about the vector.
2.1 Scores
Score is float number from 0 to 10. CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:N vector has a 2.7 base score.
2.1.1 Base score
use YWH\Cvss; $cvss = new Cvss3(); $cvss->setVector('CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N'); echo 'Base score: ' $cvss->getBaseScore(); // Base score: 0
2.1.2 Temporal score
use YWH\Cvss; $cvss = new Cvss3(); $cvss->setVector('CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:N/E:U/RL:T/RC:C'); echo 'Base score: ' $cvss->getBaseScore(); // Base score: 2.7 echo 'Temporal score: ' $cvss->getTemporalScore(); // Temporal score: 2.4
2.1.2 Environmental score
use YWH\Cvss; $cvss = new Cvss3(); $cvss->setVector('CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H/E:U/RL:T/RC:U/CR:H/IR:M/AR:H/MAV:A/MAC:H/MPR:L/MUI:R/MS:U/MC:H/MI:N/MA:L'); echo 'Base score: ' $cvss->getBaseScore(); // Base score: 9.1 echo 'Temporal score: ' $cvss->getTemporalScore(); // Temporal score: 7.4 echo 'Environmental score: ' $cvss->getEnvironmentalScore(); // Environmental score: 7.4
2.2 Qualitative Severity Rating Scale
All score can be mapped to a qualitative rating, defined in the table bellow: