CVSS v3.1 — Calcul et scoring
Guide pratique du calcul CVSS v3.1 pour la qualification des vulnérabilités
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/HAttack 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
# RCE sans authentification (Log4Shell CVE-2021-44228)CVSS31/AVN/ACL/PRN/UIN/SC/CH/IH/AH 100 Critical# SQLi avec extraction de donnéesCVSS31/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
# cvss3 (pip)pip install cvsspython3 -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/UExploit 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 SLAScore 7089 HIGH badge orange SLA 7 joursScore 4069 MEDIUM badge jaune SLA 30 joursScore 0139 LOW badge bleu SLA prochain cycleScore 00 INFO badge gris best effort
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.