Skip to content

ZakariaHn/cve-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

26 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CVE Tracker

Python React FastAPI SQLite License

A friendly vulnerability tracking system for those interested in cybersecurity.

Search, manage, and analyze Common Vulnerabilities and Exposures (CVE) with a modern, dark-themed web interface.

Features β€’ Quick Start β€’ Documentation β€’ Demo


πŸ“Έ Screenshots

CVE Tracker Interface

Search, filter, and manage CVEs with color-coded severity indicators

Key Features Shown:

  • πŸ” Advanced search with product/vendor filtering
  • πŸ“Š CVSS score sorting (ascending/descending)
  • 🎯 Critical-only filter (CVSS β‰₯ 9.0)
  • 🎨 Color-coded severity badges (Red: Critical, Orange: High, Yellow: Medium, Green: Low)
  • βž• Create new CVE records
  • πŸ“₯ Export to CSV with column selection
  • πŸ’Ύ 6 sample CVEs included (vsftpd, OpenSSH, Apache, sudo, WordPress, nginx)

✨ Features

πŸ” Advanced Search & Discovery

  • Multi-mode search: CVE ID, product/vendor name, or keywords
  • Smart filtering: Show only critical vulnerabilities (CVSS β‰₯ 9.0)
  • Flexible sorting: By CVSS score or CVE ID (ascending/descending)
  • Real-time results: Instant search with color-coded severity indicators

πŸ“Š Comprehensive CVE Management

  • Full CRUD operations: Create, read, update, and delete CVE records
  • Reference link management: Add, edit, and remove reference URLs dynamically
  • Detailed view: Complete vulnerability information at a glance
  • CVSS color coding: Visual severity indicators (Critical, High, Medium, Low)

πŸ“₯ Data Import & Export

  • Automated import: Fetch CVEs directly from NVD (National Vulnerability Database)
  • Smart caching: Local JSON caching for improved performance
  • Idempotent updates: Safe to run imports multiple times
  • CSV export: Export search results with customizable column selection

🎨 Modern Interface

  • Cybersteps-themed design: Clean dark theme with cyan accents
  • Responsive layout: Works on desktop, tablet, and mobile
  • Intuitive UI: Clean, modern interface built with React
  • Interactive modals: Smooth forms for creating and editing CVEs

πŸš€ Quick Start

Prerequisites

  • Python 3.8+
  • Node.js 16+ and npm

Check your setup:

python --version
node --version

Prerequisites:

Installation

1. Clone the repository

git clone https://github.com/ZakariaHn/cve-tracker.git
cd cve-tracker

2. Start the application

# Windows
.\scripts\start.ps1

The startup script automatically:

  • βœ… Creates Python virtual environment
  • βœ… Installs all dependencies
  • βœ… Seeds database with sample data
  • βœ… Starts backend server (port 8000)
  • βœ… Starts frontend dev server (port 5173)

3. Open in browser

Navigate to http://localhost:5173


πŸ“– Documentation

Document Description
docs/QUICK_START.md Complete setup guide (5 minutes)
docs/IMPORT_GUIDE.md Import real CVE data from NVD
docs/ADVANCED_FEATURES.md CRUD operations, export, filtering
docs/AI_ASSISTED_DEVELOPMENT.md AI-assisted development process
docs/STRUCTURE.md Project structure reference

πŸ’‘ Usage Examples

Search for Vulnerabilities

By Product/Vendor:

vsftpd 3.0.3
Apache HTTP Server
OpenSSH

By CVE ID:

CVE-2023-1234
CVE-2024-5678

Import Real CVE Data

# Activate virtual environment
.\venv\Scripts\Activate.ps1

# Import from NVD
python scripts/import_cves.py

Export to CSV

  1. Perform a search
  2. Apply filters (optional)
  3. Click "Export CSV"
  4. Select columns to include
  5. Download the file

πŸ—οΈ Project Structure

cve-tracker/
β”œβ”€β”€ app/                         # Backend (FastAPI)
β”œβ”€β”€ frontend/                    # Frontend (React + Vite)
β”œβ”€β”€ scripts/                     # Utility scripts
β”œβ”€β”€ docs/                        # Documentation
└── data/                        # Data directory

πŸ“– Detailed Structure: See docs/STRUCTURE.md for complete visual tree.


πŸ”§ Technology Stack

Backend

Frontend

Data Source

  • NVD API - National Vulnerability Database

πŸ“‘ API Documentation

Core Endpoints

Method Endpoint Description
GET /search Search CVEs with filters and sorting
GET /cves/{cve_id} Get detailed CVE information
POST /cves Create a new CVE record
PUT /cves/{cve_id} Update an existing CVE
DELETE /cves/{cve_id} Delete a CVE
GET /export.csv Export CVEs to CSV

Interactive API Docs: http://localhost:8000/docs (when running)


πŸ—„οΈ Database Schema

CVEs Table

CREATE TABLE cves (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    cve_id VARCHAR UNIQUE NOT NULL,
    description TEXT NOT NULL,
    cvss_score REAL NOT NULL,
    product_vendor VARCHAR NOT NULL
);

Reference Links Table

CREATE TABLE reference_links (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    cve_id VARCHAR NOT NULL,
    url VARCHAR NOT NULL,
    FOREIGN KEY (cve_id) REFERENCES cves(cve_id) ON DELETE CASCADE
);

🎨 CVSS Severity Ratings

Range Severity Color
9.0 - 10.0 Critical πŸ”΄ Red
7.0 - 8.9 High 🟠 Orange
4.0 - 6.9 Medium 🟑 Yellow
0.1 - 3.9 Low 🟒 Green

πŸ” Viewing Database Contents

# Activate virtual environment
.\venv\Scripts\Activate.ps1  # Windows

# Simple table view
python scripts/view_database.py

# Or use Python one-liner for custom queries
python -c "import sqlite3; conn = sqlite3.connect('cve_tracker.db'); cursor = conn.cursor(); cursor.execute('SELECT cve_id, product_vendor, cvss_score FROM cves ORDER BY cvss_score DESC'); [print(f'{row[0]} | {row[1]} | CVSS: {row[2]}') for row in cursor.fetchall()]; conn.close()"

πŸ” Troubleshooting

"Python/Node is not recognized"

  • Windows: Reinstall and check "Add to PATH"

"Scripts are disabled"

# Windows
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

"Port already in use"

# Find process using port 8000
netstat -ano | findstr :8000

# Kill the process
taskkill /PID <number> /F

Database errors

# Reset database
Remove-Item cve_tracker.db
python scripts/seed_data.py

More help: See troubleshooting section in docs/QUICK_START.md


πŸ“ About This Project

This is a learning project built to demonstrate:

  • Full-stack development with Python (FastAPI) and React
  • Working with external APIs (NVD)
  • Database design and ORM usage
  • Modern web application architecture
  • CVE tracking and cybersecurity concepts

Feel free to use this as a reference or learning resource! πŸŽ“


πŸ“„ License

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


πŸŽ“ Acknowledgments

  • NVD (National Vulnerability Database) for providing CVE data
  • CVE Program for maintaining the CVE system
  • Cybersteps for project inspiration and training

Guided by intent 🧠, planned with care πŸ“βœοΈ, brought to life through careful automation πŸ€–

See AI-Assisted Development Process for transparency about the development methodology.

Report Bug β€’ Request Feature

About

CVE Tracker - Search, manage, and analyze vulnerabilities with FastAPI + React. Features CRUD operations, NVD API import, CSV export, and real-time CVSS filtering.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors