MDstable
NoteSnippetChecklistPlaybook

CVSS v3.1 — Calcul et scoring

Guide pratique du calcul CVSS v3.1 pour la qualification des vulnérabilités

noteintermediate 2025-05-10 3 min read
cvssscoringreportingvulnérabilitépentest

Structure du vecteur CVSS v3.1

CVSS31/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)
CVSS31/AVN/ACL/PRN/UIN/SC/CH/IH/AH 100 Critical
# SQLi avec extraction de données
CVSS31/AVN/ACL/PRN/UIN/SU/CH/IH/AN 91 Critical
# XSS stocké
CVSS31/AVN/ACL/PRL/UIR/SC/CL/IL/AN 54 Medium
# Privesc local (SUID binaire)
CVSS31/AVL/ACL/PRL/UIN/SU/CH/IH/AH 78 High
# Info disclosure (version header)
CVSS31/AVN/ACL/PRN/UIN/SU/CL/IN/AN 53 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

CVSS31/AVN/ACL/PRN/UIN/SU/CH/IH/AH/EP/RLO/RCC
| | |
| | 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 90100 CRITICAL badge rouge SLA
Score 7089 HIGH badge orange SLA 7 jours
Score 4069 MEDIUM badge jaune SLA 30 jours
Score 0139 LOW badge bleu SLA prochain cycle
Score 00 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.

OPS·BRAIN v1.075 notes · Securitylocal