CVE CVSS Calculator
Hitung CVSS v3.1 Base Score untuk penilaian keparahan kerentanan.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HTentang alat ini
Common Vulnerability Scoring System (CVSS) adalah standar terbuka untuk menilai tingkat keparahan kerentanan perangkat lunak pada skala 0 hingga 10. Karena sebagian besar tim menghadapi lebih banyak celah yang terungkap daripada yang dapat mereka perbaiki sekaligus, skor yang konsisten sangat penting untuk memprioritaskan perbaikan dan memutuskan apa yang harus ditambal lebih dulu.
Untuk menggunakan kalkulator ini, pilih metrik dasar CVSS v3.1 dari kerentanan yang Anda nilai: vektor serangan, kompleksitas serangan, hak akses yang diperlukan, interaksi pengguna, cakupan, serta dampak terhadap kerahasiaan, integritas, dan ketersediaan. Alat ini langsung menghasilkan skor dasar numerik dan tingkat keparahan kualitatifnya berupa Tidak Ada, Rendah, Sedang, Tinggi, atau Kritis. Ini adalah alat bantu kerja harian bagi analis keamanan, penguji penetrasi, dan tim triase.
Perlu diingat bahwa skor dasar mencerminkan sifat intrinsik dan tetap dari sebuah kerentanan, sedangkan metrik temporal dan lingkungan menyesuaikan dengan kematangan eksploit serta penerapan spesifik Anda. Skor ini memandu keputusan Anda, tetapi tidak menggantikan penilaian risiko yang sadar konteks atas aset dan paparan Anda sendiri.
Pertanyaan yang Sering Diajukan
Implementasi Kode
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.