---
title: "CVSS v3.1 — Calcul et scoring"
domain: security
subdomain: pentest
phase: 06-reporting
type: note
tags: [cvss, scoring, reporting, vulnérabilité, pentest]
difficulty: intermediate
status: stable
updated: "2025-05-10"
---
## Structure du vecteur CVSS v3.1

```
CVSS:3.1/AV:_/AC:_/PR:_/UI:_/S:_/C:_/I:_/A:_
         |   |   |   |   |  |   |   |
         |   |   |   |   |  |   |   └─ Availability (N/L/H)
         |   |   |   |   |  |   └───── Integrity (N/L/H)
         |   |   |   |   |  └───────── Confidentiality (N/L/H)
         |   |   |   |   └──────────── Scope (U/C)
         |   |   |   └──────────────── User Interaction (N/R)
         |   |   └──────────────────── Privileges Required (N/L/H)
         |   └──────────────────────── Attack Complexity (L/H)
         └──────────────────────────── Attack Vector (N/A/L/P)
```

## Métriques de base

### Attack Vector (AV)
| Valeur | Label   | Signification                                    |
|--------|---------|--------------------------------------------------|
| N      | Network | Exploitable à distance via réseau                |
| A      | Adjacent| Réseau local ou même segment                     |
| L      | Local   | Accès local requis (SSH, console)                |
| P      | Physical| Accès physique à la machine requis               |

### Attack Complexity (AC)
| Valeur | Label | Signification                                        |
|--------|-------|------------------------------------------------------|
| L      | Low   | Pas de conditions spéciales requises                 |
| H      | High  | Conditions particulières (race condition, config...)  |

### Privileges Required (PR)
| Valeur | Label  | Signification                                      |
|--------|--------|----------------------------------------------------|
| N      | None   | Aucun privilège nécessaire                         |
| L      | Low    | Compte utilisateur basique suffisant               |
| H      | High   | Admin/root requis                                  |

### User Interaction (UI)
| Valeur | Label    | Signification                              |
|--------|----------|--------------------------------------------|
| N      | None     | Pas d'interaction utilisateur              |
| R      | Required | Une action utilisateur est nécessaire      |

### Scope (S)
| Valeur | Label    | Signification                                           |
|--------|----------|---------------------------------------------------------|
| U      | Unchanged| L'impact reste dans le composant vulnérable             |
| C      | Changed  | Impact sur des composants au-delà du périmètre initial  |

### CIA Impact (C / I / A)
| Valeur | Label | Signification                              |
|--------|-------|--------------------------------------------|
| N      | None  | Aucun impact sur ce critère                |
| L      | Low   | Impact partiel ou limité                   |
| H      | High  | Impact total ou critique                   |

## Exemples de vecteurs courants

```bash
# RCE sans authentification (Log4Shell CVE-2021-44228)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H  → 10.0 Critical

# SQLi avec extraction de données
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N  → 9.1 Critical

# XSS stocké
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N  → 5.4 Medium

# Privesc local (SUID binaire)
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H  → 7.8 High

# Info disclosure (version header)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N  → 5.3 Medium
```

## Calculateur CLI

```bash
# cvss3 (pip)
pip install cvss
python3 -c "from cvss import CVSS3; c = CVSS3('CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'); print(c.scores())"

# En ligne (NIST)
# https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator
```

## Temporal & Environmental metrics

```
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:P/RL:O/RC:C
                                                |   |   |
                                                |   |   └─ Report Confidence (X/U/R/C)
                                                |   └───── Remediation Level (X/O/T/W/U)
                                                └───────── Exploit Code Maturity (X/U/P/F/H)
```

| Temporal          | X      | U         | P         | F        | H       |
|-------------------|--------|-----------|-----------|----------|---------|
| Exploit Maturity  | N/A    | Unproven  | PoC       | Functional| High   |

### Quand utiliser les métriques temporelles
- **E:P** (PoC public) → réduit légèrement le score si pas encore exploité en masse
- **RL:O** (Official Fix) → réduit quand un patch officiel existe
- **RC:C** (Confirmed) → augmente si vuln confirmée par le vendor

## Correspondance avec le reporting

```
Score 9.0–10.0 → CRITICAL  → badge rouge   → SLA 72h
Score 7.0–8.9  → HIGH      → badge orange  → SLA 7 jours
Score 4.0–6.9  → MEDIUM    → badge jaune   → SLA 30 jours
Score 0.1–3.9  → LOW       → badge bleu    → SLA prochain cycle
Score 0.0      → INFO      → badge gris    → best effort
```

<Tip>
Ne jamais inflater un score pour "faire peur". Un CVSS incorrect détruit la crédibilité du rapport. En cas de doute sur le scope (U vs C), documenter ton raisonnement dans le finding.
</Tip>
