Nel mondo della cybersecurity capita spesso di incontrare sigle come CVE, CWE e CVSS.
A prima vista possono sembrare quasi la stessa cosa.
In realtà descrivono aspetti differenti di una vulnerabilità.
Capire la differenza è importante perché questi tre concetti vengono spesso utilizzati insieme nei report di sicurezza, nei database delle vulnerabilità e negli strumenti di vulnerability scanning.
Cos'è una CVE?
CVE significa Common Vulnerabilities and Exposures.
Una CVE identifica una specifica vulnerabilità di sicurezza conosciuta.
Il formato è generalmente:
CVE-ANNO-NUMERO
Per esempio:
CVE-2025-12345
Il codice identifica la vulnerabilità all'interno del sistema CVE.
La CVE non è quindi una categoria generica come "SQL injection" o "XSS".
È un identificatore associato a una specifica vulnerabilità documentata.
Perché le CVE sono utili?
Immaginiamo che un software utilizzi una versione vulnerabile.
Senza un identificatore comune, diversi strumenti potrebbero descrivere lo stesso problema in modi differenti.
La CVE permette invece di avere un riferimento condiviso.
Ad esempio:
CVE-2025-12345
può essere utilizzata per collegare:
- descrizione della vulnerabilità;
- software interessato;
- versioni coinvolte;
- riferimenti tecnici;
- eventuali informazioni sulla correzione;
- metriche di severità.
Questo rende più semplice correlare informazioni provenienti da fonti diverse.
E CWE cos'è?
CWE significa Common Weakness Enumeration.
A differenza di CVE, non identifica necessariamente una singola vulnerabilità.
Descrive piuttosto una tipologia di debolezza nel software.
Esempi concettuali possono essere:
Improper Input Validation
SQL Injection
Cross-Site Scripting
Improper Access Control
Quindi possiamo pensare a CWE come a una classificazione del tipo di errore o debolezza.
Una singola applicazione potrebbe avere più vulnerabilità diverse riconducibili allo stesso tipo di CWE.
CVE e CWE non sono la stessa cosa
Possiamo semplificare così:
CWE
↓
tipo di debolezza
CVE
↓
specifica vulnerabilità documentata
Per esempio, una vulnerabilità concreta presente in un determinato prodotto potrebbe essere associata a una particolare CWE.
Quindi:
CWE descrive "che tipo di problema è".
CVE identifica "quale vulnerabilità specifica stiamo parlando".
E CVSS?
La terza sigla è CVSS, cioè Common Vulnerability Scoring System.
CVSS viene utilizzato per attribuire un punteggio alla severità di una vulnerabilità sulla base di determinate caratteristiche.
Il punteggio base va generalmente da:
0.0 → 10.0
e viene accompagnato da una classificazione di severità.
In termini molto semplificati:
0.0 Nessuna
0.1–3.9 Bassa
4.0–6.9 Media
7.0–8.9 Alta
9.0–10.0 Critica
Le soglie e il significato del punteggio devono però essere interpretati secondo la versione di CVSS utilizzata.
CVSS non dice automaticamente quanto è grave per la tua azienda
Questo è un punto fondamentale.
Un CVSS elevato indica caratteristiche di severità secondo il modello CVSS.
Non significa automaticamente che quella vulnerabilità sia la più urgente da correggere nella tua infrastruttura.
Immaginiamo due vulnerabilità:
Vulnerabilità A
CVSS: 9.8
Server interno non raggiungibile da Internet
Vulnerabilità B
CVSS: 7.5
Applicazione esposta pubblicamente
contenente dati importanti
Il numero da solo non racconta tutta la situazione.
Bisogna considerare anche il contesto reale.
CVE, CWE e CVSS insieme
In un report di sicurezza potresti quindi trovare qualcosa del genere:
CVE: 2025-12345
CWE: CWE-89
CVSS: 8.8
Le tre informazioni rispondono a domande diverse:
CVE → quale vulnerabilità?
CWE → quale tipo di debolezza?
CVSS → quale severità secondo il modello?
È una distinzione semplice, ma molto utile.
Perché questa distinzione è importante nei security scanner?
Uno scanner può individuare una versione software associata a una vulnerabilità nota.
A quel punto può correlare le informazioni con database pubblici e identificare eventuali CVE compatibili.
Ma c'è un problema.
Conoscere una versione non significa necessariamente aver dimostrato che la vulnerabilità sia sfruttabile.
Potrebbero esserci:
- patch applicate senza aggiornare la versione visualizzata;
- backport di sicurezza;
- configurazioni che impediscono la condizione vulnerabile;
- informazioni incomplete sulla versione;
- falsi positivi.
Per questo il risultato di uno scanner dovrebbe essere interpretato come un elemento da verificare quando la conferma richiede informazioni che non sono osservabili dall'esterno.
Una piccola mappa mentale
Quando incontri una vulnerabilità, puoi pensare a questa struttura:
Vulnerabilità
│
┌───────────┼───────────┐
│ │ │
CVE CWE CVSS
│ │ │
specifica tipo severità
vulnerabilità debolezza
È un modo semplice per non confondere le tre sigle.
Esempio pratico
Supponiamo che un software esposto su Internet utilizzi una versione associata a una CVE.
Il report potrebbe indicare:
Prodotto: Example Server
Versione rilevata: 4.2
CVE: CVE-2026-12345
CWE: CWE-79
CVSS: 8.1
Queste informazioni non dovrebbero essere interpretate come:
"Il server è sicuramente compromesso."
Indicano invece che è stata individuata una possibile corrispondenza con una vulnerabilità conosciuta e che sono necessari ulteriori controlli per comprenderne l'effettiva esposizione.
Cosa dovrebbe fare chi riceve il report?
Una buona procedura può essere:
- identificare la vulnerabilità;
- verificare il prodotto e la versione;
- controllare le versioni effettivamente interessate;
- verificare se sono presenti patch o mitigazioni;
- valutare se il servizio è realmente esposto;
- considerare i dati e le funzioni coinvolte;
- pianificare la remediation.
Non bisogna quindi fermarsi al numero del CVSS.
MiHakero e CVE
Per un servizio di sicurezza esterna, le CVE sono particolarmente utili quando possono essere correlate con ciò che viene effettivamente osservato sulla superficie pubblica.
L'obiettivo non dovrebbe essere produrre una lunga lista di numeri.
È molto più utile aiutare a rispondere a una domanda concreta:
Quali vulnerabilità conosciute meritano di essere verificate sulla mia superficie esposta?
CVE, CWE e CVSS forniscono tre pezzi diversi della risposta.