The Enhanced Aggregate Scoring (EAS) is a comprehensive framework designed to assess the quality and completeness of CVE records. By evaluating each record across five critical dimensions, EAS provides a standardized score (up to 100 points) that reflects how actionable, precise, and useful a CVE is for security teams and automated tools. All CVEs are published by CVE Numbering Authorities (CNAs), whose performance is measured and compared using this methodology.
The EAS scoring algorithm is implemented in Python and processes CVE data from the official CVEProject/cvelistV5 repository. The core scoring logic is contained in:
๐ cnascorecard/eas_scorer.py ๐ cnascorecard/main.py ๐ cnascorecard/data_ingestor.pyMeasures the presence of basic, essential information needed to understand and act on a vulnerability.
Metric | Points | Description |
---|---|---|
Description Quality | 15 | Advanced content analysis evaluating technical depth, specificity, and clarity |
Affected Products | 10 | Clear identification of affected products |
Version Information | 5 | Specific version ranges or status information |
Language Tag & Structured Data | 2 | Proper language tags and structured product data |
The description quality scoring uses a multi-dimensional analysis based on 9,435 CVE descriptions:
Evaluates whether the CVE provides insight into the underlying weakness type.
Metric | Points | Description |
---|---|---|
CWE ID Provided & Valid | 11 | Valid CWE identifier (e.g., CWE-79, CWE-120) |
CWE Format Precision | 1 | Correct CWE-ID format (e.g., CWE-79 not CWE: 79 ) |
Assesses whether the CVE record includes a valid CPE identifier for affected products, enabling precise software identification and automation.
Metric | Points | Description |
---|---|---|
CPE Present & Valid | 11 | Valid CPE identifier (e.g., cpe:2.3:a:apache:http_server:2.4.52:*) |
CPE Format Precision | 1 | Correct CPE 2.3 formatting |
CPE validation uses the python-cpe library to ensure compliance with NIST IR 7695 specification.
The system validates:
Assesses the quality and completeness of severity scoring information.
Metric | Points | Description |
---|---|---|
CVSS Base Score | 15 | CVSS v4.0/v3.1/v3.0 base score provided |
CVSS Vector String & Valid | 6 | Complete and valid CVSS vector string for reproducibility |
Impact Description | 5 | Description includes impact indicators |
CVSS Format Precision | 1 | Correct CVSS vector format and values |
CVSS scoring validation supports multiple versions and uses the python-cvss library:
The system validates both base scores (0.0-10.0) and vector strings for mathematical consistency.
Measures the availability of information that enables immediate action by security teams.
Metric | Points | Description |
---|---|---|
Solution Information | 8 | Available fixes, patches, or mitigations |
Actionable References | 6 | Links to patches, advisories, or security guidance |
Workarounds | 2 | Temporary mitigation steps |
Detailed Solution | 4 | Solution or fix description is detailed (>100 characters) |
The system automatically classifies references by analyzing URLs and content:
The CNA ScoreCard system operates through a fully automated pipeline:
Key Components:
๐ scripts/build.py ๐ scripts/generate_dashboard.py ๐ cnascorecard/generate_static_data.py ๐ .github/workflows/main.ymlCNA scores are calculated by:
The system maintains comprehensive statistics for each CNA:
Data is stored in JSON format for easy consumption by visualization tools and APIs.
Ranking shows a CNA's position among all active CNAs based on their average EAS score. For example, "Rank: 12 of 150" means this CNA is 12th out of 150 active CNAs in the last 6 months.
Higher EAS scores indicate CVE records that are:
The scoring system includes comprehensive testing:
๐ tests/test_data_structure.py ๐ tests/test_integration.py ๐ tests/test_quick.pyFor detailed analysis of the description quality algorithm, see the testing framework in the tests/
directory.