Vai al contenuto
🛠️ToolsShed

CVE CVSS Calculator

Calcola il CVSS v3.1 Base Score per la valutazione della gravità delle vulnerabilità.

9.8
Critical
CVSS v3.1 Base Score
Attack Vector
Attack Complexity
Privileges Required
User Interaction
Scope
Confidentiality Impact
Integrity Impact
Availability Impact
Stringa vettoriale
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
None
0.0
Low
0.1–3.9
Medium
4.0–6.9
High
7.0–8.9
Critical
9.0–10.0

Informazioni sullo strumento

Il Common Vulnerability Scoring System (CVSS) è uno standard aperto per valutare la gravità delle vulnerabilità software su una scala da 0 a 10. Poiché la maggior parte dei team affronta molte più falle divulgate di quante ne possa correggere in una sola volta, un punteggio coerente è essenziale per stabilire le priorità di rimedio e decidere cosa correggere per primo.

Per usare questo calcolatore, seleziona le metriche di base CVSS v3.1 della vulnerabilità che stai valutando: vettore dell'attacco, complessità dell'attacco, privilegi richiesti, interazione dell'utente, ambito e impatto su riservatezza, integrità e disponibilità. Lo strumento restituisce all'istante un punteggio base numerico e la sua gravità qualitativa tra Nessuna, Bassa, Media, Alta o Critica. È un aiuto di lavoro quotidiano per analisti di sicurezza, penetration tester e team di triage.

Tieni presente che il punteggio base riflette le proprietà intrinseche e costanti di una vulnerabilità, mentre le metriche temporali e ambientali si adattano alla maturità dell'exploit e al tuo specifico ambiente. Il punteggio guida le tue decisioni, ma non sostituisce un'analisi del rischio consapevole del contesto relativo ai tuoi asset e alla tua esposizione.

Domande Frequenti

Implementazione del Codice

import math

# CVSS v3.1 Base Score Calculator
WEIGHTS = {
    'AV': {'N': 0.85, 'A': 0.62, 'L': 0.55, 'P': 0.20},
    'AC': {'L': 0.77, 'H': 0.44},
    'PR_U': {'N': 0.85, 'L': 0.62, 'H': 0.27},  # Unchanged scope
    'PR_C': {'N': 0.85, 'L': 0.68, 'H': 0.50},  # Changed scope
    'UI': {'N': 0.85, 'R': 0.62},
    'CIA': {'N': 0.00, 'L': 0.22, 'H': 0.56},
}

def roundup(x: float) -> float:
    """CVSS-specific roundup to 1 decimal place."""
    return math.ceil(x * 10) / 10

def calculate_cvss_base(av, ac, pr, ui, scope, c_impact, i_impact, a_impact) -> tuple[float, str]:
    """Calculate CVSS v3.1 Base Score."""
    scope_changed = scope == 'C'
    pr_w = WEIGHTS['PR_C'][pr] if scope_changed else WEIGHTS['PR_U'][pr]

    iss = 1 - (1 - WEIGHTS['CIA'][c_impact]) * (1 - WEIGHTS['CIA'][i_impact]) * (1 - WEIGHTS['CIA'][a_impact])

    if scope_changed:
        impact = 7.52 * (iss - 0.029) - 3.25 * (iss - 0.02) ** 15
    else:
        impact = 6.42 * iss

    exploitability = 8.22 * WEIGHTS['AV'][av] * WEIGHTS['AC'][ac] * pr_w * WEIGHTS['UI'][ui]

    if impact <= 0:
        score = 0.0
    elif scope_changed:
        score = roundup(min(1.08 * (impact + exploitability), 10))
    else:
        score = roundup(min(impact + exploitability, 10))

    # Severity
    severity = 'None' if score == 0 else 'Low' if score < 4 else 'Medium' if score < 7 else 'High' if score < 9 else 'Critical'
    return score, severity

# Example: Critical vulnerability (Log4Shell-like)
score, severity = calculate_cvss_base(
    av='N', ac='L', pr='N', ui='N',  # Network, Low complexity, No privileges, No user interaction
    scope='C',                          # Scope Changed
    c_impact='H', i_impact='H', a_impact='H'  # High CIA impact
)
print(f"Log4Shell-like score: {score} ({severity})")

# Example: Local privilege escalation
score, severity = calculate_cvss_base('L', 'L', 'L', 'N', 'U', 'H', 'H', 'N')
print(f"Local privesc: {score} ({severity})")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.