// VULNERABILITY SCORING

CVSS: how the severity of a vulnerability is calculated

CVSS (Common Vulnerability Scoring System) is an open standard for scoring the severity of a vulnerability on a scale of 0 to 10, describing how easily the flaw can be exploited and what it causes. It is published by FIRST, and in practice you meet versions 3.1 and 4.0 side by side today. The score by itself isn’t a remediation priority: it knows nothing about what the system does inside your company.

// 01

Key facts

ItemDetail
Full nameCommon Vulnerability Scoring System
AbbreviationCVSS
PublisherFIRST, Forum of Incident Response and Security Teams
Current version4.0 from 2023; 3.1 from 2019 is still in use alongside it
What it is forTurns the properties of a vulnerability into a number from 0 to 10 and a level
Binding or recommendedRecommended. Mandatory only where a contract or an internal policy asks for it
Primary sourceCVSS v4.0 specification

// 02

What goes into the score?

Three groups of metrics feed the score. The base ones describe the flaw itself: where it can be exploited from, how complex the attack is, and what breaks. The second group covers circumstances that change over time, above all whether a public exploit exists. The third adjusts the result for a specific environment. Version 4.0 adds a supplemental group on top, which doesn’t enter the number.

  • Can it be exploited over the network from outside, or does the attacker have to sit on the same segment?
  • Does it need an account, and if so, is an ordinary user without privileges enough?
  • Does someone have to click, or does it happen without any help from the operator?
  • What breaks: the confidentiality of the data, its integrity, or the availability of the service?

The base part is calculated once and the same way for everyone, which is why it can be taken from databases. Nobody outside will calculate your environment for you, though. The same score of 8.8 means one thing on a test instance and something else on the system that sends out payments. A scanner prints the number and supplies no context, and where a scan ends and a manual test begins has its own comparison.

// 03

How is the vector read?

The vector writes every metric into a single line so the number can be recalculated and checked. It is read from left to right in pairs of metric and value: first the version of the standard, then where the attack comes from, how complex it is, whether it needs an account and user interaction, and finally the impact on confidentiality, integrity, and availability.

In version 3.1 there is one more field before impact, scope, meaning whether the consequence spills beyond the affected system. In version 4.0 the impact components come as two sets, one for the vulnerable system and one for the subsequent system.

It pays to read even when you trust the number. Two findings with the same score of 7.5 can have completely different vectors, one with impact on data and the other only on availability, and what you do with them differs accordingly. The vector is also the most reliable way to tell which version of the standard a number came from, because it carries the version right in its first field.

// 04

What do the levels Critical to Low mean?

The number converts into a level expressed as a word, and that is what reports mostly work with. The standard distinguishes five levels, because it counts None for a score of 0.0 as well. A report works with four of them in practice, the ones in the table below, and we use them too so that a report can be compared with a deliverable from somewhere else.

LevelScoreWhat usually sits behind it in a report
Critical9.0 to 10.0Exploitable from outside without an account, with direct impact on data or operations
High7.0 to 8.9A serious flaw with one extra condition, such as an account or a position in the network
Medium4.0 to 6.9Exploitation needs several things to line up, or the impact is limited
Low0.1 to 3.9Small impact, handled in the next maintenance window

The boundaries are sharp, reality isn’t: in live operation there is no visible difference between a finding of 6.9 and one of 7.0, even though one is Medium and the other High. The level is also only a description of the flaw, not of the system. The identifier of a vulnerability and how it comes about is a different matter from its rating.

// 05

What is the difference between CVSS 3.1 and 4.0?

Version 4.0 from 2023 answers three complaints about version 3.1 from 2019. It separates the impact on the vulnerable system from the impact on subsequent systems, it adds a metric for whether the attack can be automated, and it handles the public availability of an exploit better. The automation metric belongs to the supplemental group, so it doesn’t enter the number.

The range of 0 to 10 stays, but the calculation itself changed in 4.0: instead of the formula from 3.1, the result is read from tables that are part of the specification.

In practice you run into both, and the numbers don’t have to agree. Some records carry a rating under the old version next to one under the new, and a difference of a few tenths is normal. Before you compare two findings, check that they were calculated the same way: FIRST keeps the 3.1 specification publicly available next to the new version.

The move to 4.0 has a practical consequence too. The new version tends to give higher scores than 3.1, so more findings land in the High and Critical bands. For a company that means more items under pressure from internal SLAs and from the audit, even though nothing has actually changed on the systems and the score was only recalculated under a different version of the standard.

// 06

Why isn’t the score enough to set the remediation priority?

The score measures the properties of the flaw, not the value of the system the flaw sits in. Ten findings with a score of 7.5 can mean ten different risks depending on what runs on those systems and who can reach them. Sorting by the number therefore produces a list where things of widely different urgency meet at the top.

The score is only the start. The remediation priority also takes in how easily the finding can be exploited, how reachable the system is, and what sits behind it in the company. That is why a finding with a lower number sometimes goes into remediation first. The whole procedure of how we put the remediation priority together step by step is the subject of a separate article. How the score feeds into the remediation priority, and why a report carries both, is on the penetration testing page.

// 07

An example from a finding of our own

Our CVE-2026-39042 in MikroTik RouterOS has a score of 7.5 and the level High. The whole number rests on a single component of the vector, availability: an unauthenticated attacker takes the service down but doesn’t reach the data, so the impact on confidentiality and integrity is zero.

It is a textbook example of why the vector is read next to the number. The rating is public in the CVE-2026-39042 record in the NVD dated July 13, 2026, and what a finding whose score we calculated ourselves means for testing network devices belongs with that service.

// 08

Frequently asked questions

CVSS 9.8 is a finding at the top of the Critical level. Practically always it is a flaw exploitable over the network, without a login and without any help from a user, with impact on confidentiality, integrity, and availability. What such a finding usually lacks to reach ten is that the exploitation doesn’t reach beyond the affected system. In practice it means a fix or taking the service offline within days, not quarters.

Whoever publishes the vulnerability. For public records that tends to be the vendor or the organization authorized to assign the numbers; in the NVD database NIST adds it or carries it over from whoever submitted the record, and for findings from a penetration test the tester calculates it. The methodology is public, so you can recalculate a score yourself, and with a disputed finding it is worth doing.

The 7.0 boundary isn’t an obligation but an internal agreement, and as a trigger it makes sense: what sits above it gets handled within weeks. Decide the order inside that group by the system, though, not by tenths of a point. A 7.2 on a portal reachable from the internet goes ahead of an 8.1 on a workstation in a closed lab.

Because the environment and the version of the standard both feed the result. The vendor calculates the impact on its product, a database on a generic installation, and you on your configuration, in which the system may be cut off from the internet or, conversely, exposed. On top of that comes the difference between versions 3.1 and 4.0. A difference of a few tenths is normal; a difference of a whole level is worth checking against the vector.

Yes, even though the standard is written mainly for publicly known vulnerabilities. A tester applies it to findings that have no public number either, typically to flaws in authorization or configuration. The advantage is comparability across reports and vendors. The drawback is that with business logic flaws the vector sometimes doesn’t fit and has to be supplemented with a description of the impact in words.

Related pages

Updated September 5, 2026.

// NEXT STEP

We’ll show you a report where every finding carries a score and a remediation priority

Tell us what you want tested. We’ll get back to you and schedule a call to pin down scope, timing, and price.