CVE CVSS Calculator
Calcule a Pontuação Base CVSS v3.1 para avaliação de severidade de vulnerabilidade.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HSobre esta ferramenta
O Sistema Comum de Pontuação de Vulnerabilidades (CVSS) é um padrão aberto para classificar a gravidade de vulnerabilidades de software em uma escala de 0 a 10. Como a maioria das equipes enfrenta mais falhas divulgadas do que consegue corrigir de uma vez, uma pontuação consistente é essencial para priorizar a correção e decidir o que aplicar patch primeiro.
Para usar esta calculadora, selecione as métricas base do CVSS v3.1 da vulnerabilidade que está avaliando: vetor de ataque, complexidade do ataque, privilégios necessários, interação do usuário, escopo e o impacto sobre confidencialidade, integridade e disponibilidade. A ferramenta retorna na hora uma pontuação base numérica e sua gravidade qualitativa de Nenhuma, Baixa, Média, Alta ou Crítica. É um apoio de trabalho diário para analistas de segurança, pentesters e equipes de triagem.
Lembre-se de que a pontuação base reflete as propriedades intrínsecas e constantes de uma vulnerabilidade, enquanto as métricas temporais e ambientais se ajustam à maturidade do exploit e à sua implantação específica. A pontuação orienta suas decisões, mas não substitui um julgamento de risco consciente do contexto sobre seus próprios ativos e exposição.
Perguntas Frequentes
Implementação de Código
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.