Security

CVSS Calculator

Paste a CVSS v3.x vector string and instantly decode the base score, severity label, and all eight metric values. The calculator runs entirely in your browser โ€” no data is transmitted.

Calculations run locally in your browser

How to actually read a CVSS score

A CVSS base score is a ranking input, not a verdict. The number tells you how the vulnerability behaves in the abstract โ€” whether it is reachable over the network, whether it needs authentication, whether successful exploitation would wreck confidentiality, integrity, or availability. What it does not tell you is whether the vulnerable component is exposed in your environment, whether the attacker population actually has the capability described, or whether the business impact of the affected system is trivial or catastrophic.

In production triage, the base score is the first filter, not the last. A 9.8 on an unreachable internal service can wait until the next patch window. A 5.4 on your public billing endpoint probably cannot. Treat the score as "how dangerous is this class of bug when it fires" and then separately ask "is it going to fire in our environment."

Three mistakes people make reading CVSS scores

1. Treating the severity band as a deadline. "Critical must be patched in 24 hours" is a convenient policy but it conflates severity with exposure. A Critical-rated RCE on a library your application does not actually import is not an emergency. The right question is always "is this reachable, is it exploitable here, and what does it cost me if it is" โ€” CVSS answers the first half of the first question only.

2. Ignoring the Scope metric. The Scope flag (S:U vs S:C) is the most misread field in the vector. When Scope is Changed, it means successful exploitation in the vulnerable component grants impact in a different security authority โ€” for example, a container breakout, a sandbox escape, or a cross-tenant boundary in a multi-tenant service. A Scope-Changed vuln at 8.0 is usually worse operationally than a Scope-Unchanged vuln at 9.0, because the blast radius includes things you were not defending as part of that component's threat model.

3. Patching in CVSS order instead of exposure order. Sorting a 200-CVE backlog from high to low CVSS looks disciplined and produces the wrong schedule. The correct sort key is exposure ร— score: a Medium on something customers can reach beats a Critical on something only employees on the VPN can reach. Every mature vuln-management program eventually builds a layer on top of CVSS that multiplies in asset criticality and reachability; the score on its own has never been the full answer and the FIRST specification says so explicitly.

When this score is misleading

CVSS is easiest to misuse when a team treats the base score as if it already includes environmental facts. It does not. A 9.8 on a library that is present in your dependency graph but unreachable behind a broker, a feature flag, or a non-routable admin path is still a 9.8 in CVSS terms, because the specification is describing the vulnerability class, not your deployment topology. If your patch queue is driven by the base score alone, you end up burning time on theoretically severe findings while reachable medium-severity flaws remain exposed in front of customers.

The score is also misleading when compensating controls change the practical exploit path. A network-reachable issue scored with PR:N and UI:N may still be materially constrained in your environment if every route to the component is behind mutual TLS, if dangerous functionality is disabled by policy, or if exploitation requires a data path your production service no longer exposes. None of that lowers the base score, but it should lower the urgency you assign during triage. The reverse is true too: a "mere" medium can behave like a high if the vulnerable component sits on a public payment flow, a privileged control plane, or a tenant boundary.

There is a third trap around long-lived findings. Teams often keep an old CVSS number attached to a ticket even after the surrounding system changed. A local-only privilege escalation becomes more urgent after a new remote foothold appears in the same environment. A scope-changed container breakout becomes less urgent after the workload is isolated onto dedicated hosts. The metric values did not change, but the operational meaning did. Re-read the vector whenever exposure, tenancy, identity boundaries, or attack preconditions move.

After you have a score

  1. Check whether the vulnerable component is actually present in your dependency tree โ€” try the dependency CVE scanner for SBOM-based matching.
  2. If the vector involves secrets or credential exposure, audit whether any credentials for that system may already have leaked โ€” the secrets scanner walks a repo tree and flags high-entropy strings.
  3. Confirm the advisory you are triaging is real and correctly identified before you act on it โ€” the CVE ID validator checks the identifier format and links straight to the NVD record.
CVSS scores are inputs, not decisions. Prioritize by context. The Data Governance Analyzer ranks your vulnerability backlog by exploitability, asset criticality, and exposure โ€” not just base score.
View vulnerability prioritization โ†’