Security

CVE

Common Vulnerabilities and Exposures — a standardized identifier system for publicly known cybersecurity vulnerabilities, maintained by MITRE Corporation.

What Is CVE?

Common Vulnerabilities and Exposures (CVE) is a standardized system for identifying and cataloging publicly disclosed cybersecurity vulnerabilities. Each vulnerability receives a unique identifier in the format CVE-YYYY-NNNNN (for example, CVE-2021-44228 for the Log4Shell vulnerability), which serves as a universal reference that security tools, vulnerability databases, advisories, and incident reports all use to refer to the same specific flaw.

The CVE system was launched in 1999 by MITRE Corporation with sponsorship from the U.S. Department of Homeland Security’s Cybersecurity and Infrastructure Security Agency (CISA). Before CVE existed, different security tools and databases used their own proprietary identifiers for the same vulnerability, making it nearly impossible to correlate findings across tools or communicate precisely about specific flaws. CVE solved this problem by providing a single, authoritative naming standard.

As of 2024, the CVE database contains over 200,000 entries and grows by roughly 25,000 new entries per year. Vulnerabilities are submitted by CVE Numbering Authorities (CNAs) — organizations authorized by MITRE to assign CVE identifiers. CNAs include major software vendors (Microsoft, Google, Apple, Red Hat), security research organizations, and bug bounty platforms. This distributed model allows CVEs to be assigned quickly, often before a patch is even available.

How It Works

The lifecycle of a CVE begins when a vulnerability is discovered — either by the software vendor, a security researcher, or through active exploitation. The discoverer reports the vulnerability to the appropriate CNA, which assigns a CVE ID and publishes a record containing the vulnerability description, affected software and versions, severity assessment, and references to patches or advisories.

A CVE record includes standardized metadata that tools consume programmatically:

{
  "cveId": "CVE-2021-44228",
  "descriptions": [
    {
      "lang": "en",
      "value": "Apache Log4j2 2.0-beta9 through 2.15.0 JNDI features do not protect against attacker controlled LDAP and other JNDI related endpoints."
    }
  ],
  "metrics": {
    "cvssV3_1": {
      "baseScore": 10.0,
      "baseSeverity": "CRITICAL",
      "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
    }
  },
  "affected": [
    {
      "vendor": "Apache",
      "product": "Log4j",
      "versions": [
        { "version": "2.0-beta9", "status": "affected" },
        { "version": "2.15.0", "status": "affected" },
        { "version": "2.16.0", "status": "unaffected" }
      ]
    }
  ]
}

Security tools integrate with CVE data to automate vulnerability detection. SCA tools check your dependencies against the CVE database, and vulnerability scanners reference CVEs in their findings:

# Check a Node.js project for dependencies with known CVEs
$ npm audit

found 3 vulnerabilities (1 moderate, 1 high, 1 critical)

┌─────────────────────────────────────────────────────────┐
                   critical severity
├───────────────┬─────────────────────────────────────────┤
 Package log4js
 Vulnerability CVE-2022-29167
 Description Prototype pollution in log4js
 Patched in >=6.4.7
 Dependency of my-logging-lib
 Path my-logging-lib > log4js
└───────────────┴─────────────────────────────────────────┘

Organizations can also query the National Vulnerability Database (NVD) API to monitor for new CVEs affecting their technology stack:

# Query the NVD API for recent critical CVEs in a specific product
import requests

response = requests.get(
    "https://services.nvd.nist.gov/rest/json/cves/2.0",
    params={
        "keywordSearch": "apache log4j",
        "cvssV3Severity": "CRITICAL",
        "resultsPerPage": 5
    }
)
cves = response.json()["vulnerabilities"]
for cve in cves:
    entry = cve["cve"]
    print(f"{entry['id']}: {entry['descriptions'][0]['value'][:100]}...")

Why It Matters

CVE identifiers are the backbone of vulnerability management across the software industry. Without CVEs, organizations would struggle to determine whether two different security tools are reporting the same vulnerability, whether a vendor advisory applies to their specific software version, or whether a known exploit in the wild targets something they are running.

When a critical vulnerability like Log4Shell (CVE-2021-44228) is disclosed, the CVE identifier becomes the organizing principle for the entire response. Security teams search their SCA tool results for CVE-2021-44228, vendors publish advisories referencing it, patch management systems track remediation by CVE ID, and incident responders use it to coordinate across organizations. Without this common identifier, the response to a major vulnerability would be chaotic and error-prone.

CVEs also enable risk-based prioritization. Each CVE is scored using the Common Vulnerability Scoring System (CVSS), which rates severity on a scale from 0.0 to 10.0 based on factors like attack complexity, required privileges, user interaction, and the potential impact on confidentiality, integrity, and availability. This scoring helps organizations triage thousands of findings and focus their limited remediation resources on the vulnerabilities that pose the greatest risk.

The CVE system also provides transparency in the software supply chain. When organizations require software vendors to disclose their CVE history and patch timelines, it creates market pressure for better security practices. Products with a track record of quickly patching CVEs earn trust; products that leave critical CVEs unpatched for months lose it.

Best Practices

  • Integrate CVE monitoring into your development workflow. Use SCA tools that check dependencies against CVE databases on every build. Do not rely on manual monitoring of advisory mailing lists.
  • Subscribe to vendor security advisories. CVE entries provide baseline information, but vendor advisories often include more specific guidance about affected configurations, workarounds, and upgrade paths.
  • Prioritize CVEs based on exploitability, not just CVSS score. A CVSS 9.0 vulnerability that requires local access and unusual configuration is less urgent than a CVSS 7.5 vulnerability with a public exploit and network exposure. Use exploit prediction scores (EPSS) and known-exploited-vulnerability catalogs (like CISA KEV) to refine prioritization.
  • Track CVE remediation as a key metric. Measure mean time to remediate (MTTR) by severity level and track trends over time. This data reveals whether your vulnerability management process is improving or deteriorating.
  • Maintain an accurate software inventory. You cannot assess CVE impact if you do not know what software and versions you are running. Asset inventory and SBOM generation are prerequisites for effective CVE management.

Common Mistakes

  • Treating all CVEs as equally urgent. The CVE database contains vulnerabilities ranging from theoretical denial-of-service conditions to actively exploited remote code execution flaws. Patching everything with equal priority wastes resources and delays fixes for the vulnerabilities that matter most.
  • Ignoring CVEs in transitive dependencies. A CVE in a direct dependency is easy to spot, but the same vulnerability buried three levels deep in a transitive dependency is equally dangerous. SCA tools must scan the full dependency tree.
  • Waiting for CVE publication to begin patching. CVEs can take weeks or months to appear in the NVD after initial disclosure. Monitor vendor advisories and security mailing lists for early warnings, and patch when the vendor releases a fix regardless of whether a CVE number has been assigned yet.
  • Confusing “no known CVEs” with “secure.” The absence of CVEs for a package means no vulnerabilities have been publicly disclosed and cataloged — it does not mean the package is free of vulnerabilities. New or niche packages with small user bases receive less security scrutiny and may have undiscovered flaws.

Related Terms

Learn More

Tool Reviews

Related Articles

Free Newsletter

Stay ahead with AI dev tools

Weekly insights on AI code review, static analysis, and developer productivity. No spam, unsubscribe anytime.

Join developers getting weekly AI tool insights.