Skip to content

CVSS ParserGo CVSS Parsing Library

Powerful, flexible, and easy-to-use CVSS 3.0/3.1 parsing and calculation library

Quick Installation

bash
go get github.com/scagogogo/cvss

Simple Example

go
package main

import (
    "fmt"
    "log"

    "github.com/scagogogo/cvss-parser/pkg/cvss"
    "github.com/scagogogo/cvss-parser/pkg/parser"
)

func main() {
    // Parse CVSS vector
    p := parser.NewCvss3xParser("CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H")
    cvssVector, err := p.Parse()
    if err != nil {
        log.Fatalf("Parse failed: %v", err)
    }

    // Calculate score
    calculator := cvss.NewCalculator(cvssVector)
    score, err := calculator.Calculate()
    if err != nil {
        log.Fatalf("Calculation failed: %v", err)
    }

    fmt.Printf("CVSS Score: %.1f\n", score)
    fmt.Printf("Severity: %s\n", calculator.GetSeverityRating(score))
}

Key Features

🎯 Complete CVSS Support

  • CVSS 3.0 and 3.1: Full support for both CVSS specifications
  • All Metric Types: Base metrics, temporal metrics, environmental metrics
  • Strict Validation: Ensures vector format and value correctness

📈 Advanced Analysis Features

  • Vector Comparison: Calculate similarity between CVSS vectors
  • Distance Calculation: Multiple distance algorithm support
  • Batch Processing: Efficiently process large amounts of vector data

🔌 Easy Integration

  • JSON Support: Complete serialization and deserialization
  • Error Handling: Detailed error messages and recovery mechanisms
  • Well Documented: Rich examples and API documentation

Use Cases

🛡️ Security Assessment

go
// Assess vulnerability severity
vectors := []string{
    "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
    "CVSS:3.1/AV:L/AC:H/PR:H/UI:R/S:U/C:L/I:L/A:L",
}

for _, vectorStr := range vectors {
    // Parse and evaluate...
}

📊 Risk Analysis

go
// Calculate vector distance
distCalc := cvss.NewDistanceCalculator(vector1, vector2)
distance := distCalc.EuclideanDistance()
fmt.Printf("Vector distance: %.3f\n", distance)

💾 Data Storage

go
// JSON serialization
jsonData, err := json.Marshal(cvssVector)
if err != nil {
    log.Fatal(err)
}

Get Started

  1. Quick Start - 5-minute getting started guide
  2. API Documentation - Complete API reference
  3. Example Code - Rich usage examples

Community and Support


CVSS Parser - Making CVSS processing simple and efficient

Get Started | View Source | Browse Examples

Released under the MIT License.