CVSS Scoring & Finding Classification in STE Reports
Theory
Prerequisites
- STE-K001: What STE Is
- PEN-K004: Vulnerability Assessment & CVE Research (CVSS background)
Why This Lesson Matters
Every STE finding needs a severity. Without a consistent scoring system, two evaluators score the same vulnerability differently, and clients cannot prioritise remediation. CVSS v3.1 is the industry standard. This lesson builds the scoring fluency that turns vague descriptions ("this is bad") into defensible numbers ("AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H = 10.0 Critical").
1. The CVSS v3.1 Base Score: A Decision Tree
Work through the metrics in order. Each has a small number of options.
Step 1 — Attack Vector (AV): Where is the attacker?
Network (N): Exploitable remotely, no physical presence needed
Adjacent (A): Attacker must be on the same network segment (Wi-Fi, LAN)
Local (L): Attacker needs local shell access
Physical (P): Attacker needs physical access to hardware
Step 2 — Attack Complexity (AC): Are special conditions required?
Low (L): No special conditions; attack can be repeated reliably
High (H): Attacker needs to defeat a defence mechanism or race a condition
Step 3 — Privileges Required (PR): What privilege level does the attacker need?
None (N): No login required
Low (L): Authenticated as any user
High (H): Authenticated as admin
Step 4 — User Interaction (UI): Must a victim do something?
None (N): No victim action required
Required (R): Victim must click, open, or view something
Step 5 — Scope (S): Does the impact extend beyond the vulnerable component?
Unchanged (U): Impact stays within the same system
Changed (C): Impact affects other systems (e.g., browser is victim, but server data is affected)
Steps 6-8 — CIA Impact (C, I, A):
None (N): No impact on this CIA property
Low (L): Limited impact (partial access, non-critical data)
High (H): Complete loss of this CIA property
2. Worked Scoring Examples
Example 1 — Unauthenticated SQLi on public login page
Vulnerability: Blind time-based SQL injection, unauthenticated, allows full DB extraction
AV: N → exploitable from the internet
AC: L → no special conditions; standard SQL injection
PR: N → no credentials required
UI: N → no victim action
S: U → impact stays within the application
C: H → full database contents readable
I: H → database writable (UPDATE/INSERT possible)
A: N → cannot cause downtime via SQL injection alone
Vector: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Score: 9.1 — Critical
Example 2 — Stored XSS on a comments page
Vulnerability: Stored XSS allows session cookie theft of any user who views comments
AV: N → exploitable from the internet
AC: L → attack reliably reproduces (comment is stored)
PR: L → must be authenticated to post a comment
UI: R → victim must view the page containing the comment
S: C → scope changes: the browser (victim) is the impacted component
C: L → session cookie stolen (significant, but limited to this application)
I: L → attacker can act as the victim in the application
A: N → no availability impact
Vector: AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Score: 5.4 — Medium
Example 3 — Missing account lockout on admin login
Vulnerability: Admin login has no account lockout — enables brute force
AV: N → exploitable from the internet
AC: H → attacker must successfully guess a password (uncertain outcome)
PR: N → no initial privilege needed
UI: N → no victim action
S: U → impact stays within the application
C: H → if brute force succeeds, full admin access
I: H → full data modification possible
A: L → no direct availability impact, but flooding might cause latency
Vector: AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L
Score: 8.1 — High
3. Temporal & Environmental Modifiers
The base score is the worst-case scenario. Temporal and Environmental metrics allow adjustment.
Temporal — adjusts for current exploitability:
| Metric | Meaning | Score effect |
|---|---|---|
| Exploit Code Maturity = Functional | Public exploit available | Score stays the same or increases |
| Exploit Code Maturity = Proof-of-Concept | PoC exists, not weaponised | Slight reduction |
| Remediation Level = Official Fix | Vendor patch available | Modest reduction |
Environmental — adjusts for the specific deployment:
| Situation | Adjustment |
|---|---|
| Database on non-internet-facing system | Reduce AV from N to A or L |
| Data is already public | Reduce C impact |
| System is not critical to operations | Reduce A impact |
For STE reports, always include the base score. Include temporal/environmental if the deployment context significantly changes the real-world risk.
4. The STE Finding Risk Rating
Beyond CVSS, STE reports use a composite risk rating that accounts for business context:
Risk = CVSS Base Score × Asset Criticality
Asset criticality:
Tier 1 (Critical business process): multiplier 1.5
Tier 2 (Important): multiplier 1.0
Tier 3 (Non-critical): multiplier 0.7
Example:
CVSS 7.5 High finding on a Tier 1 payment system:
STE risk = 7.5 × 1.5 = 11.25 → capped at 10 → remains Critical
CVSS 7.5 High finding on a Tier 3 test server:
STE risk = 7.5 × 0.7 = 5.25 → Medium in business context
5. Common Mistakes
Mistake 1: Setting S:C (Scope Changed) for everything. Scope changed means the impact crosses a security boundary into a different component. A web app SQLi that reads the web app's own database is S:U. A web app SSRF that reaches a separate internal service is S:C.
Mistake 2: Using AC:H for "it requires technical skill." AC:H means the attack requires overcoming a specific defence mechanism (ASLR, timing constraint, information prerequisite). Skill level of the attacker is not a CVSS metric.
Mistake 3: Giving C:H for informational disclosure. C:H means full disclosure of confidential information — everything, not just some. A finding that leaks one field from a user record is C:L.
6. Practice Exercises
- Score these two findings and justify each metric:
- "Authenticated attacker can modify another user's profile data but cannot read it"
-
"Unauthenticated attacker can download any file from the server by modifying a path traversal parameter"
-
A finding scores AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 9.8. However, the vulnerable service is only accessible from the internal office network (not the internet). What is the correct AV value? How does the score change?
-
Explain the difference between C:L and C:H using a concrete database finding example.
7. Lab
Assessment mode: quiz
8 scoring exercises: for each described vulnerability, select the correct value for each of the 8 base metrics and compute the base score. Compare your score against the provided answer and explain any differences.
8. Framework Alignment
| Framework | Role | Competency | Confidence |
|---|---|---|---|
| CCSSF-STE | Security Testing & Evaluation | Finding classification and CVSS scoring | High |
| CCSSF-PEN | Penetration Tester | Pentest report CVSS scoring | High |
| CCSSF-ISSO | ISSO / Generalist | Risk prioritisation | High |
| NICE 2.2.0 | Security Testing | K0009 — Vulnerability scoring | High |
9. Further Reading
- CVSS v3.1 Specification Document — https://www.first.org/cvss/specification-document — Required reading; the metric definitions are the authoritative reference
- CVSS v3.1 Calculator — https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator — Interactive scorer
- FIRST CVSS Examples — https://www.first.org/cvss/examples — Official worked scoring examples
Learning Objectives
["Score three described vulnerabilities using the CVSS v3.1 decision tree, selecting and justifying all eight base metrics for each", "Explain the Scope metric by correctly classifying five described vulnerabilities as S:U or S:C, with a one-sentence justification for each", "Apply the environmental modifier to a base score of 7.5 by adjusting AV from Network to Adjacent for a described deployment context, and explain the business impact of the score change"]
Lesson Outline
Prerequisites → Why this matters → CVSS v3.1 as a decision tree (8 steps, options for each) → Worked examples (SQLi, stored XSS, missing lockout) → Temporal and environmental modifiers → STE composite risk rating (CVSS × asset criticality) → Common mistakes → Practice exercises → Quiz lab → Framework alignment → Further reading