Common Platform Enumeration (CPE)
Common Platform Enumeration (CPE) is a standardized, machine‑readable naming system used to uniquely identify software, operating systems, and hardware platforms. It enables consistent vulnerability tracking, asset management, and automation across cybersecurity tools.
What CPE Is
CPE is an open standard originally developed by MITRE and now maintained by NIST as part of the National Vulnerability Database (NVD). Its purpose is to ensure that every IT product has a consistent, structured identifier, so security tools can reliably determine which systems are affected by vulnerabilities.
CPE is used in:
- CVE records to list affected products
- Vulnerability scanners to match installed software to known issues
- SBOMs (Software Bills of Materials) to identify components consistently
- SCAP (Security Content Automation Protocol) for automated compliance and vulnerability management
CPE Structure (Version 2.3)
The current standard is CPE 2.3, which uses a 13‑field, colon‑delimited format:
Code
cpe:2.3:<part>:<vendor>:<product>:<version>:<update>:<edition>:<language>:<sw_edition>:<target_sw>:<target_hw>:<other>
Key Fields
- part — a (application), o (operating system), h (hardware)
- vendor — organization that created the product
- product — product name (no spaces; underscores allowed)
- version — version string
- update — patch level (e.g., SP1, beta)
- edition — build or edition (deprecated but still present)
- language — RFC 5646 language tag (e.g., en-us)
- sw_edition — software edition (e.g., community, special)
- target_sw — environment (e.g., windows_2003)
- target_hw — hardware architecture
Example
Code
cpe:2.3:a:openssl:openssl:3.0.7:*:*:*:*:*:*:*
This identifies OpenSSL version 3.0.7.
How CPE Is Used in Vulnerability Management
When a CVE is published, NVD includes CPE entries for all affected products.
Example from CVE‑2022‑0778:
- cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* (versions < 1.0.2zd)
- cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* (versions ≥ 3.0.0, < 3.0.2)
1Security scanners then:
1. Detect installed software
2. Construct the matching CPE string
3. Query NVD’s CPE match API
4. Retrieve all CVEs affecting that product
This automation is only possible because CPE provides a consistent naming standard.
CPE Dictionary
NIST maintains the official CPE Dictionary, updated nightly, containing all standardized product names. It is publicly available in XML and JSON formats. Organizations can submit new entries to NIST for inclusion.
Why CPE Matters
- Eliminates ambiguity in product naming
- Enables automated vulnerability scanning
- Supports SBOMs and supply‑chain security
- Integrates with SCAP and other security standards
- Improves accuracy in identifying affected systems


