---
id: "cve_id"
kind: "datatype"
status: "draft"
is_pii: false
categories: ["software"]
langs: ["common"]
quality: 85
url: "http://registry.apicrafter.io/datatype/cve_id"
---

# CVE identifier (`cve_id`)

> **Draft.** Draft records have not been reviewed yet and may be incomplete or wrong; do not treat them as authoritative for legal or compliance decisions.

Identifier that the CVE Program gives to a publicly disclosed cybersecurity vulnerability: CVE-, a four-digit year and a sequence number of at least four digits. The year is the year the vulnerability was discovered or the year the identifier was published. The CVE JSON 5 record format allows up to 19 digits in the sequence number. NVD, OSV.dev and the GitHub Advisory Database refer to vulnerabilities by their CVE identifier.

- Personal data (PII): no
- Categories: Software development (software)
- Countries: global
- Languages: Common to most languages (common)
- Classification: identifier

## Detection

Regular expression (Python `re`):

```
^CVE-[0-9]{4}-[0-9]{4,19}$
```

## Examples

- `CVE-2021-44228` — Remote code execution through JNDI lookups in Apache Log4j 2 (Log4Shell)
- `CVE-2014-0160` — OpenSSL TLS heartbeat information disclosure (Heartbleed)
- `CVE-2021-34527` — Windows Print Spooler remote code execution; five-digit sequence number
- `CVE-2021-123` (invalid example) — Sequence number has fewer than four digits
- `CVE-21-44228` (invalid example) — Two-digit year

## Mappings

- wikidata: `P3587`

## Sources

- wikipedia: <https://en.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures>
- doc: <https://github.com/CVEProject/cve-schema/blob/main/schema/CVE_Record_Format.json>

## Quality

Score 85/100. Missing: translation, detector coverage.

JSON: <http://registry.apicrafter.io/api/v1/datatypes/cve_id.json> · Edit: <https://github.com/apicrafter/metacrafter-registry/edit/main/data/datatypes/any/software/cve_id.yaml>
