Qu'est-ce que le CVSS ?
Le CVSS (Common Vulnerability Scoring System, « système commun de notation des vulnérabilités ») note la gravité d'une faille sur une échelle de 0 à 10. Maintenu par le FIRST, il produit un score, une sévérité et un « vecteur » reproductible. Il mesure les dégâts possibles — pas la probabilité qu'ils surviennent.
Un bulletin annonce « CVSS 9.8 ». Votre direction demande si c'est pire que le 8.1 de la semaine dernière. La réponse honnête tient en une page, et elle commence par savoir lire le vecteur plutôt que le chiffre.
Deux images pour fixer l'idée
Le CVSS est la magnitude d'un séisme. Un séisme de magnitude 8 libère une énergie considérable, qu'il frappe une mégapole ou un désert inhabité. La magnitude décrit le phénomène, jamais ses conséquences pour vous. C'est exactement le rapport entre un score CVSS et votre système d'information.
Le CVSS est aussi la fiche technique d'une voiture. Elle indique 250 km/h en vitesse de pointe. Elle ne dit ni à quelle vitesse vous roulez, ni si la route est mouillée, ni si quelqu'un a les clés. Deux images valent mieux qu'une ici : la première fait comprendre que le score est intrinsèque, la seconde qu'il décrit un potentiel que le contexte peut ne jamais réaliser.
Les cinq niveaux de sévérité
Le score se traduit en une étiquette qualitative, celle qui apparaît dans les bulletins :
| Score CVSS | Sévérité |
|---|---|
| 0.0 | Aucune |
| 0.1 à 3.9 | Faible |
| 4.0 à 6.9 | Moyenne |
| 7.0 à 8.9 | Élevée |
| 9.0 à 10.0 | Critique |
Ces seuils valent pour le CVSS 3.x et 4.0. Le CVSS 2.0, plus ancien, n'avait que trois niveaux et ignorait totalement le mot « critique » : une même faille peut donc porter deux étiquettes différentes selon la version utilisée pour la noter.
Lire un vecteur champ par champ
Le score ne tombe pas du ciel : il se calcule à partir d'un vecteur, une chaîne qui encode huit décisions. Prenons celui de Log4Shell (CVE-2021-44228) :
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Il se lit de gauche à droite comme une phrase :
| Champ | Valeur | Ce que ça veut dire |
|---|---|---|
AV — vecteur d'attaque | N (network) | Attaquable depuis Internet, sans accès préalable au réseau local. |
AC — complexité | L (low) | Aucune condition particulière : l'attaque réussit à tous les coups. |
PR — privilèges requis | N (none) | Aucun compte nécessaire. |
UI — interaction utilisateur | N (none) | Personne n'a besoin de cliquer sur quoi que ce soit. |
S — périmètre | C (changed) | La casse déborde du composant vulnérable et touche ce qu'il y a derrière. |
C / I / A | H / H / H | Impact total sur la confidentialité, l'intégrité et la disponibilité. |
Score obtenu : 10.0. Maintenant, la partie que presque personne ne montre — ce que change un seul champ :
| Modification | Nouveau score | Lecture |
|---|---|---|
S:C → S:U (le dégât reste confiné) | 9.8 | C'est le fameux « 9.8 » que vous voyez partout : une exécution de code à distance non authentifiée, sans débordement de périmètre. |
PR:N → PR:H (un compte administrateur est requis) | 9.1 | Exiger un compte privilégié divise la surface d'attaque, mais ne fait perdre qu'un point : le CVSS reste sévère avec les impacts totaux. |
AV:N → AV:L (accès local obligatoire) | 9.3 | Être obligé d'être déjà sur la machine change tout en pratique… et presque rien sur le score. |
Vérifiez-le vous-même : chacun de ces vecteurs se recalcule dans le calculateur CVSS 3.1. C'est l'exercice de dix minutes qui fait passer de « je lis un chiffre » à « je comprends une note ».
Base, menace, environnement : trois étages
Le CVSS comporte trois groupes de métriques, et l'immense majorité des bases publiques n'en publie qu'un.
- Base : la gravité intrinsèque, stable dans le temps. C'est le score que vous voyez dans 99 % des cas.
- Temporel / menace : ajuste selon la maturité de l'exploit et l'existence d'un correctif. Il ne peut que baisser le score de base.
- Environnemental : adapte le score à votre contexte — criticité de l'actif, mesures compensatoires, exigences propres de confidentialité ou de disponibilité.
Conséquence directe : le score que vous lisez dans un bulletin n'a jamais été calculé pour vous. L'étage environnemental, celui qui vous concerne, c'est à vous de le renseigner — et presque personne ne le fait.
Les versions : 2.0, 3.0, 3.1 et 4.0
| Version | Ce qu'elle change | Où vous la croisez |
|---|---|---|
| 2.0 (2007) | Métriques plus grossières, pas de niveau « critique », impacts gradués en partiel/complet. | Archives et vieux rapports de scanners. |
| 3.0 (2015) | Introduit le périmètre (Scope) et les privilèges requis. | CVE publiées entre 2016 et 2019. |
| 3.1 (2019) | Clarifie l'arrondi et la documentation ; formules identiques à la 3.0. | La grande majorité des CVE du NVD aujourd'hui. |
| 4.0 (2023) | Supprime le Scope et le remplace par deux blocs d'impact : VC/VI/VA pour le système vulnérable, SC/SI/SA pour les systèmes situés derrière. Ajoute les conditions d'attaque (AT). | De plus en plus d'avis d'éditeurs. |
Traduction concrète du changement de la 4.0 : une faille d'hyperviseur qui compromet les machines virtuelles invitées se note enfin pour ce qu'elle est, au lieu d'être écrasée dans un unique drapeau « périmètre modifié ». Les quatre versions se comparent dans le calculateur.
Heartbleed 7.5, Log4Shell 10.0 : ce que l'écart raconte
CVE-2014-0160 (Heartbleed) est notée 7.5 en CVSS 3.1 — « élevée », pas « critique ». Son vecteur n'accorde d'impact qu'à la confidentialité : la faille laisse lire la mémoire du serveur, sans rien modifier ni interrompre. Sur le papier, c'est moins grave qu'une exécution de code.
Dans les faits, elle a exposé des clés privées TLS sur une fraction massive du web et provoqué une campagne mondiale de renouvellement de certificats. CVE-2021-44228 (Log4Shell), notée 10.0, a fait plus de bruit encore — mais l'écart de 2,5 points entre les deux ne mesure pas l'écart d'impact réel. Le CVSS note une mécanique, pas une conséquence.
L'erreur qui coûte le plus de temps
Et concrètement, pour vous
Une règle de travail qui tient en quatre lignes, applicable dès lundi :
- Ne triez jamais par CVSS seul. Servez-vous-en pour départager, pas pour ordonner.
- Sur les failles qui vous concernent, lisez le vecteur avant le score :
AV:LouPR:Hsur une machine sans accès extérieur, c'est souvent une urgence en moins. - Renseignez l'étage environnemental sur vos dix actifs les plus critiques — pas sur les mille autres. Le rapport effort/gain est là.
- Notez la version utilisée à côté de chaque score. Un 7.0 en 2.0 et un 7.0 en 4.0 ne décrivent pas la même chose.

