CPE
Common Platform Enumeration (CPE) je standardní schéma pojmenování IT produktů, například cpe:2.3:a:tukaani:xz:5.6.0, kterým NVD určuje, kterých produktů se CVE týká.
Poslední aktualizace: 11. listopadu 2026
Common Platform Enumeration (CPE) je strukturované schéma pojmenování IT produktů v kybernetické bezpečnosti: aplikací, operačních systémů a hardwaru. Verzi 2.3 specifikuje NIST v NISTIR 7695 (srpen 2011). National Vulnerability Database (NVD) používá názvy CPE k určení, kterých produktů se CVE týká, a vede oficiální slovník CPE.
Formát CPE 2.3
Název CPE 2.3 má za prefixem cpe:2.3 11 atributů: part, vendor, product, version, update, edition, language, sw_edition, target_sw, target_hw a other. Část (part) je a pro aplikaci, o pro operační systém a h pro hardware. * znamená libovolnou hodnotu a - znamená „netýká se“.
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:-:*:*:*:*:*:*:*
První je příklad ze specifikace. Druhý je knihovna lodash z npm s node.js jako cílovým softwarem. Třetí je hardwarové zařízení. Všechny tři jsou ve slovníku NVD.
Jak párování podle CPE funguje a kde selhává
Záznam v NVD uvádí CPE, kterých se CVE týká, často s rozsahy verzí. Skener převede každou komponentu v SBOM na odhad CPE a porovná je. Pokazit se mohou tři věci:
- Nejednoznačné názvy. Dodavatel a produkt ve slovníku nejsou vždy tím, jak se balíček jmenuje ve svém ekosystému. Knihovna xz je
cpe:2.3:a:tukaani:xz, zatímco Debian ji dodává jako balíčekxz-utils. Odhad sestavený z názvu balíčku trefí špatný produkt, nebo žádný. - Příliš široké rozsahy. Prohlášení o použitelnosti může pokrývat verze nebo platformy, které zasažené nejsou, například všechny verze produktu, i když byla zasažena jen jedna konfigurace buildu. Každá komponenta, která odpovídá, se stává nálezem, na který je třeba provést triáž.
- Chybějící data. NIST uvádí, že „starting in early 2024, the NVD developed a significant backlog of unenriched CVEs“ (od začátku roku 2024 se v NVD nahromadil značný počet neobohacených CVE). Od 15. dubna 2026 obohacuje CVE podle priority (nejdříve záznamy v CISA KEV, software používaný federální vládou a kritický software podle EO 14028) a zbytek označuje jako „Lowest Priority - not scheduled for immediate enrichment“ (NIST). Autority CVE Numbering Authorities mohou v záznamu CVE uvádět dotčené produkty včetně CPE a NVD od června 2026 přidává tato data o dotčených produktech od CNA a ADP do svých záznamů, pokrytí se ale u jednotlivých CNA liší. Poznámky k vydání 5.2 projektu Yocto popisují důsledek bez obalu: při kontrolách založených na CPE „some vulnerabilities are just not reported“ (některé zranitelnosti se prostě nenahlásí).
Spárování se špatným produktem je jedním ze zdrojů falešně pozitivních nálezů; viz jak omezit šum kolem zranitelností.
CPE vs Package URL
| Package URL | CPE | |
|---|---|---|
| Kdo název definuje | Ekosystém balíčku | Slovník CPE v NVD |
| Identifikuje | Balíček v registru nebo distribuci | Produkt, včetně hardwaru a operačních systémů |
| Formát | pkg:type/namespace/name@version | cpe:2.3:part:vendor:product:version:... |
| Standard | ECMA-427 | NISTIR 7695 (CPE 2.3) |
| Používají ho | OSV, GitHub advisories, nástroje SBOM | NVD, mnoho skenerů |
| Typické selhání | Chybí u vendorovaného nebo ručně uvedeného kódu | Nejednoznačné názvy dodavatele a produktu; u mnoha nových CVE chybí data CPE |
Používejte package URL všude, kde existuje ekosystém balíčků, CPE pro komerční produkty, firmware a hardware a obojí tam, kde požadavek žádá obojí. 2026 Minimum Elements od CISA uvádějí CPE a Package-URL jako běžné identifikátory a BSI TR-03183-2 vyžaduje takové identifikátory u každé komponenty, kde existují.
CPE v SBOM
CycloneDX má u každé komponenty pole cpe a SPDX nese CPE jako externí identifikátory. Pokud jste dodavatel, uveďte CPE, které NVD pro váš produkt skutečně používá (vyhledejte ho ve slovníku), a nevymýšlejte vlastní: vymyšlené CPE ničemu neodpovídá. Identifikátory jsou jednou částí kvality polí SBOM; zda v seznamu něco chybí, je samostatná otázka, úplnost SBOM.
CRACI identifikuje každý balíček, který build stáhne, podle jeho package URL. Viz SBOM z doby buildu.