Vulnerabilities

Common Vulnerability Scoring System

Dawid Czagan
July 12, 2013 by
Dawid Czagan

1. Introduction

This article presents an open framework for scoring IT vulnerabilities— the Common Vulnerability Scoring System (CVSS) Version 2.0. It introduces metric groups, describes base metrics, vector, and scoring. Finally, an example is provided to understand how it works in practice.

Learn Vulnerability Management

Learn Vulnerability Management

Get hands-on experience with dozens of courses covering vulnerability assessments, tools, management and more.

2. Metric groups

There are three metric groups:

I. Base (used to describe the fundamental information about the vulnerability—its exploitability and impact).

II. Temporal (time is taken into account when severity of the vulnerability is assessed; for example, the severity decreases when the official patch is available).

III. Environmental (environmental issues are taken into account when severity of the vulnerability is assessed; for example, the more systems affected by the vulnerability, the higher severity).

This article is focused on base metrics. Please read A Complete Guide to the Common Vulnerability Scoring System Version 2.0 if you are interested in temporal and environmental metrics [1].

3. Base metrics

There are exploitability and impact metrics:

I. Exploitability

a) Access Vector (AV) describes how the vulnerability is exploited:

- Local (L)—exploited only locally

- Adjacent Network (A)—adjacent network access is required to exploit the vulnerability

- Network (N)—remotely exploitable

The more remote the attack, the more severe the vulnerability.

b) Access Complexity (AC) describes how complex the attack is:

- High (H)—a series of steps needed to exploit the vulnerability

- Medium (M)—neither complicated nor easily exploitable

- Low (L)—easily exploitable

The lower the access complexity, the more severe the vulnerability.

c) Authentication (Au) describes the authentication needed to exploit the vulnerability:

- Multiple (M)—the attacker needs to authenticate at least two times

- Single (S)—one-time authentication

- None (N)—no authentication

The lower the number of authentication instances, the more severe the vulnerability.

II. Impact

a) Confidentiality (C) describes the impact of the vulnerability on the confidentiality of the system:

- None (N)—no impact

- Partial (P)—data can be partially read

- Complete (C)—all data can be read

The more affected the confidentiality of the system is, the more severe the vulnerability.

+b) Integrity (I) describes an impact of the vulnerability on integrity of the system:

- None (N)—no impact

- Partial (P)—data can be partially modified

- Complete (C)—all data can be modified

The more affected the integrity of the system is, the more severe the vulnerability.

c) Availability (A) describes an impact of the vulnerability on availability of the system:

- None (N)—no impact

- Partial (P)—interruptions in system's availability or reduced performance

- Complete (C)—system is completely unavailable

The more affected availability of the system is, the more severe the vulnerability.

Please note the abbreviated metric names and values in parentheses. They are used in base vector description of the vulnerability (explained in the next section).

4. Base vector

Let's discuss the base vector. It is presented in the following form:

AV:[L,A,N]/AC:[H,M,L]/Au:[M,S,N]/C:[N,P,C]/I:[N,P,C]/A:[N,P,C]

This is an abbreviated description of the vulnerability that brings information about its base metrics together with metric values. The brackets include possible metric values for given base metrics. The evaluator chooses one metric value for every base metric.

5. Scoring

The formulas for base score, exploitability, and impact subscores are given in A complete Guide to the Common Vulnerability Scoring System Version 2.0 [1]. However, there in no need to do the calculations manually. There is a Common Vulnerability Scoring System Version 2 Calculator available [2]. The only thing the evaluator has to do is assign metric values to metric names.

6. Severity level

The base score is dependent on exploitability and impact subscores; it ranges from 0 to 10, where 10 means the highest severity. However, CVSS v2 doesn't transform the score into a severity level. One can use, for example, the FortiGuard severity level to obtain this information [3]:

FortiGuard severity level CVSS v2 score

Critical 9 - 10

High 7 - 8.9

Medium 4 - 6.9

Low 0.1 – 3.9

Info 0

7. Putting all pieces together

An exemplary vulnerability in web application is provided to better understand how Common Vulnerability Scoring System Version 2.0 works in practice. Please keep in mind that this framework is not limited to web application vulnerabilities.

Cross-site request forgery in admin panel allows adding a new user and deleting an existing user or all users.

Let's analyze first the base metrics together with the resulting base vector:

Access Vector (AV): Network (N)

Access Complexity (AC): Medium (M)

Authentication (Au): None (N)

Confidentiality (C): None (N)

Integrity (I): Partial (P)

Availability (A): Complete (C)

Base vector: (AV:N/AC:M/Au:N/C:N/I:P/A:C)

Explanation: The admin has to visit the attacker's website for the vulnerability to be exploited. That's why the access complexity is medium. The website of the attacker is somewhere on the Internet. Thus the access vector is network. No authentication is required to exploit this vulnerability (the admin only has to visit the attacker's website). The attacker can delete all users, making the system unavailable for them. That's why the impact of the vulnerability on the system's availability is complete. Deleting all users doesn't delete all data in the system. Thus the impact on integrity is partial. Finally, there is no impact on the confidentiality of the system provided that added user doesn't have read permissions on default.

Let's use the Common Vulnerability Scoring System Version 2 Calculator to obtain the subscores (exploitability and impact) and base score [2]:

Exploitability subscore: 8.6

Impact subscore: 7.8

Base score: 7.8

Let's transform the score into a severity level according to FortiGuard severity levels [3]:

FortiGuard severity level: High

8. Summary

This article described an open framework for scoring IT vulnerabilities—Common Vulnerability Scoring System (CVSS) Version 2.0. Base metrics, vector and scoring were presented. An exemplary way of transforming CVSS v2 scores into severity levels was described (FortiGuard severity levels). Finally, an example was discussed to see how all these pieces work in practice.

References

[1] A Complete Guide to the Common Vulnerability Scoring System Version 2.0

http://www.first.org/cvss/cvss-guide.html (access date: 8 July 2013)

[2] Common Vulnerability Scoring System Version 2 Calculator

http://nvd.nist.gov/cvss.cfm?calculator&adv&version=2 (access date: 8 July 2013)

[3] FortiGuard Severity Levels

Learn Vulnerability Management

Learn Vulnerability Management

Get hands-on experience with dozens of courses covering vulnerability assessments, tools, management and more.

http://www.fortiguard.com/static/intrusion/severity.html (access date: 8 July 2013)

Dawid Czagan
Dawid Czagan

Dawid Czagan (@dawidczagan) has found security vulnerabilities in Google, Yahoo, Mozilla, Microsoft, Twitter, BlackBerry and other companies. Due to the severity of many bugs, he received numerous awards for his findings.

Dawid is founder and CEO at Silesia Security Lab, which delivers specialized security auditing services with a results-driven approach. He also works as Security Architect at Future Processing.

Dawid shares his bug hunting experience in his workshop entitled "Hacking web applications - case studies of award-winning bugs in Google, Yahoo, Mozilla and more". To find out about the latest in Dawid's work, you are invited to visit his blog (https://silesiasecuritylab.com/blog) and follow him on Twitter (@dawidczagan).