CPE
Common Platform Enumeration (CPE) è uno schema di denominazione standard per i prodotti IT, come cpe:2.3:a:tukaani:xz:5.6.0, che la NVD usa per indicare quali prodotti sono colpiti da una CVE.
Ultimo aggiornamento: 11 novembre 2026
Common Platform Enumeration (CPE) è uno schema strutturato di denominazione dei prodotti IT nella cybersecurity: applicazioni, sistemi operativi e hardware. La versione 2.3 è specificata dal NIST in NISTIR 7695 (agosto 2011). La National Vulnerability Database (NVD) usa i nomi CPE per indicare quali prodotti sono colpiti da una CVE, e gestisce il dizionario CPE ufficiale.
Il formato CPE 2.3
Un nome CPE 2.3 ha 11 attributi dopo il prefisso cpe:2.3: part, vendor, product, version, update, edition, language, sw_edition, target_sw, target_hw e other. La parte (part) è a per un'applicazione, o per un sistema operativo e h per l'hardware. Un * indica qualsiasi valore e un - indica non applicabile.
cpe:2.3:a:microsoft:internet_explorer:8.0.6001:beta:*:*:*:*:*:*
cpe:2.3:a:lodash:lodash:4.17.20:*:*:*:*:node.js:*:*
cpe:2.3:h:raspberrypi:raspberry_pi_4_model_b:-:*:*:*:*:*:*:*
Il primo è l'esempio della specifica. Il secondo è la libreria npm lodash, con node.js come software di destinazione. Il terzo è un prodotto hardware. Tutti e tre sono nel dizionario della NVD.
Come funziona il matching CPE e dove sbaglia
Un record della NVD elenca i CPE a cui si applica una CVE, spesso con intervalli di versioni. Uno scanner trasforma ogni componente di una SBOM in un'ipotesi di CPE e confronta. Tre cose vanno storte:
- Nomi ambigui. Fornitore e prodotto nel dizionario non corrispondono sempre al nome del pacchetto nel suo ecosistema. La libreria xz è
cpe:2.3:a:tukaani:xz, mentre Debian la distribuisce come pacchettoxz-utils. Un'ipotesi costruita dal nome del pacchetto colpisce il prodotto sbagliato o nessuno. - Intervalli troppo ampi. Una dichiarazione di applicabilità può coprire versioni o piattaforme non interessate, ad esempio tutte le versioni di un prodotto quando lo era una sola configurazione di build. Ogni componente che corrisponde diventa un risultato da sottoporre a triage.
- Dati mancanti. Il NIST scrive che «a partire dall'inizio del 2024, la NVD ha accumulato un notevole arretrato di CVE non arricchite». Dal 15 aprile 2026 arricchisce le CVE per priorità (prima le voci del KEV della CISA, il software usato dal governo federale e il software critico secondo l'EO 14028) e contrassegna le altre come «Lowest Priority - not scheduled for immediate enrichment» (NIST). Le CVE Numbering Authorities possono fornire i prodotti interessati, CPE compresi, nel record CVE, e la NVD integra questi dati forniti da CNA e ADP da giugno 2026, ma la copertura varia da CNA a CNA. Le note di rilascio della 5.2 dello Yocto Project lo dicono chiaramente: con controlli basati sui CPE, «alcune vulnerabilità semplicemente non vengono segnalate».
Associare il prodotto sbagliato è una fonte di falsi positivi; veda ridurre il rumore delle vulnerabilità.
CPE e Package URL a confronto
| Package URL | CPE | |
|---|---|---|
| Chi definisce il nome | L'ecosistema del pacchetto | Il dizionario CPE della NVD |
| Identifica | Un pacchetto in un registry o in una distribuzione | Un prodotto, compresi hardware e sistemi operativi |
| Formato | pkg:type/namespace/name@version | cpe:2.3:part:vendor:product:version:... |
| Standard | ECMA-427 | NISTIR 7695 (CPE 2.3) |
| Usato da | OSV, advisory GitHub, strumenti SBOM | NVD, molti scanner |
| Errore tipico | Manca per codice incorporato o elencato a mano | Nomi di fornitore e prodotto ambigui; nessun dato CPE per molte CVE recenti |
Usi un package URL ovunque esista un ecosistema di pacchetti, un CPE per prodotti commerciali, firmware e hardware, ed entrambi quando un requisito li chiede entrambi. I 2026 Minimum Elements della CISA citano CPE e Package-URL come identificatori comuni, e la BSI TR-03183-2 richiede tali identificatori per ogni componente, se esistono.
I CPE nelle SBOM
CycloneDX ha un campo cpe su ogni componente, e SPDX riporta i CPE come identificatori esterni. Se Lei è un fornitore, indichi il CPE che la NVD usa davvero per il Suo prodotto (lo cerchi nel dizionario) invece di inventarne uno: un CPE inventato non corrisponde a nulla. Gli identificatori sono una parte della qualità dei campi di una SBOM; se manca qualcosa nell'elenco è un'altra questione, la completezza della SBOM.
CRACI identifica ogni pacchetto che una build scarica tramite il suo package URL. Veda SBOM in fase di build.