Skip to content

CVE-ICU is a research project that automatically pulls all CVE data from the NVD and performs fundamental data analysis and graphing.

License

Notifications You must be signed in to change notification settings

CVEDB/cvedb.github.io

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CVEDB πŸ›‘οΈ

Comprehensive CVE Analysis & Visualization Platform

CVEDB is an automated platform that provides comprehensive analysis and visualization of Common Vulnerabilities and Exposures (CVE) data. Built with Python and deployed via GitHub Actions, it delivers fresh insights into the cybersecurity landscape through interactive web visualizations.

🌐 Live Site: https://cvedb.github.io

Build and Deploy Tests License: MIT

✨ Features

πŸ“Š Comprehensive CVE Analysis

  • Multi-Year Data - Analyzes CVE data from 1999 to present (~303,000+ CVEs)
  • CVSS Scoring - Severity analysis across CVSS v2, v3.0, v3.1, and v4.0
  • CWE Classification - Common Weakness Enumeration categorization
  • CPE Analysis - Vendor and product vulnerability insights
  • CNA Tracking - CVE Numbering Authority statistics and activity

🎯 Scoring Intelligence Hub

  • CVSS Analysis - Severity-based scoring distribution and trends
  • EPSS Integration - Exploit Prediction Scoring System (probability of exploitation)
  • KEV Dashboard - CISA Known Exploited Vulnerabilities catalog
  • Risk Matrix - Interactive CVSS Γ— EPSS visualization for risk prioritization

οΏ½οΏ½ Interactive Visualizations

  • Yearly Trends - CVE publication patterns over time
  • Calendar Heatmaps - Daily and monthly vulnerability disclosure patterns
  • Growth Metrics - Year-over-year vulnerability growth analysis
  • Vendor Rankings - Top affected vendors and products

πŸš€ Automated Infrastructure

  • GitHub Actions CI/CD - Automated builds every 6 hours
  • Fresh Data - Always up-to-date with latest NVD releases
  • GitHub Pages Deployment - Automatic web deployment
  • 39 Automated Tests - Comprehensive test coverage

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                          Data Sources                                β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚     NVD API    β”‚   CVE V5 Repo   β”‚   EPSS API   β”‚   CISA KEV        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                β”‚                β”‚               β”‚
         β–Ό                β–Ό                β–Ό               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     Download & Cache Layer                           β”‚
β”‚                   (download_cve_data.py)                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               β”‚
                               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                       Analysis Layer                                 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  yearly    β”‚   cna    β”‚   cvss   β”‚   cwe    β”‚   cpe    β”‚  scoring   β”‚
β”‚  analysis  β”‚ analysis β”‚ analysis β”‚ analysis β”‚ analysis β”‚  analysis  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               β”‚
                               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        Build Layer                                   β”‚
β”‚                       (build.py)                                     β”‚
β”‚    Template Rendering  β”‚  JSON Generation  β”‚  Data Validation       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               β”‚
                               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                       Output (web/)                                  β”‚
β”‚          HTML Pages  β”‚  JSON Data  β”‚  Static Assets                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Prerequisites

  • Python 3.11+
  • Git

Installation

# Clone the repository
git clone https://github.com/cvedb/cvedb.github.io.git
cd cvedb.github.io

# Install dependencies
pip install -r requirements.txt

# Run the build
python build.py

Build Options

# Standard build (verbose output)
python build.py

# Quiet mode for CI/CD
python build.py --quiet

# Validate data consistency after build
python build.py --validate

# Environment variable for quiet mode
CVE_BUILD_QUIET=1 python build.py

Serve Locally

cd web
python -m http.server 8000
# Open http://localhost:8000

πŸ“ Project Structure

cvedb.github.io/
β”œβ”€β”€ build.py                 # Main build orchestrator
β”œβ”€β”€ requirements.txt         # Python dependencies
β”œβ”€β”€ data/
β”‚   β”œβ”€β”€ cache/               # Downloaded data (gitignored)
β”‚   β”‚   β”œβ”€β”€ nvd.jsonl        # NVD vulnerability data
β”‚   β”‚   β”œβ”€β”€ cvelistV5/       # CVE V5 Git repository
β”‚   β”‚   └── *.json           # EPSS, KEV, CNA data
β”‚   β”œβ”€β”€ *_analysis.py        # Analysis modules
β”‚   β”œβ”€β”€ download_cve_data.py # Data downloader
β”‚   β”œβ”€β”€ cve_v5_processor.py  # CVE V5 processor
β”‚   └── scripts/             # Utility scripts
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ ARCHITECTURE.md      # System architecture
β”‚   β”œβ”€β”€ SCHEMAS.md           # JSON output schemas
β”‚   β”œβ”€β”€ COUNTING.md          # CVE counting methodology
β”‚   └── ROADMAP.md           # Development roadmap
β”œβ”€β”€ templates/               # Jinja2 HTML templates
β”œβ”€β”€ tests/                   # pytest test suite
└── web/                     # Generated output
    β”œβ”€β”€ *.html               # HTML pages
    β”œβ”€β”€ data/                # JSON data files
    └── static/              # CSS, JS, images

πŸ“Š Data Sources

Source Description Update Frequency
NVD National Vulnerability Database Daily
CVE List V5 Official CVE records Real-time
EPSS Exploit Prediction Scoring Daily
CISA KEV Known Exploited Vulnerabilities As needed

πŸ§ͺ Testing

# Run all tests
pytest tests/ -v

# Run with coverage
pytest tests/ --cov=data --cov-report=html

# Validate data consistency
python build.py --validate

πŸ“ˆ Output Files

Analysis JSON Files

File Description
cve_YYYY.json Per-year CVE data
cve_all.json Aggregated CVE summary
yearly_summary.json Year-over-year statistics
cna_analysis.json CNA assignment statistics
cvss_analysis.json CVSS score distributions
cwe_analysis.json CWE classification data
cpe_analysis.json Vendor/product analysis
calendar_analysis.json Publication timing patterns
growth_analysis.json CVE growth trends
scoring_analysis.json EPSS and KEV data

HTML Pages

Page Description
index.html Dashboard overview
years.html Year-by-year analysis
cna.html CNA statistics
cvss.html CVSS scoring analysis
cwe.html CWE classification
cpe.html Vendor/product analysis
calendar.html Publication calendar
growth.html Growth trends
scoring.html EPSS/KEV/Risk Matrix

πŸ”„ CI/CD

The project uses GitHub Actions for automation:

  • Scheduled Builds: Every 6 hours (0:00, 6:00, 12:00, 18:00 UTC)
  • On Push: Builds triggered on commits to main branch
  • Deployment: Automatic deployment to GitHub Pages

πŸ“– Documentation

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Run tests (pytest tests/ -v)
  4. Commit changes (git commit -m 'Add amazing feature')
  5. Push to branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments


CVEDB

Built by KhulnaSoft at CVEDB

About

CVE-ICU is a research project that automatically pulls all CVE data from the NVD and performs fundamental data analysis and graphing.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 48.8%
  • HTML 47.6%
  • CSS 3.4%
  • Makefile 0.2%