术语表

CVSS 是什么?漏洞严重程度评分及其计算方法

CVSS 是用 0.0~10.0 表示漏洞严重程度的通用评分,由攻击途径、所需权限、影响等指标按公式算出。讲解评分标准、向量字符串读法、v3.1 与 v4.0 的区别及如何判断优先级。

发布于 2026-06-07 更新于 2026-10-06 6 分钟阅读
本页目录

「CVSS 10.0」「CVSS 9.8 的 RCE」这样的数字,几乎出现在每一则漏洞新闻里。它不是随意打的分,而是从既定的评分标准(指标)和公式算出来的。下面从零开始讲解它的读法。

0.0–10.0
分数范围
8 个项目
基础指标(v3.1)
10.0
最坏等级
FIRST
规范制定方

分数的对照

分数等级体感
9.0 – 10.0Critical(重大)立即处理。多为接管级
7.0 – 8.9High(高)尽早处理
4.0 – 6.9Medium(中)有计划地处理
0.1 – 3.9Low(低)观察处理

如果说 CVE 是表示「是哪个漏洞」的名字,那么 CVSS 就是表示「它有多严重」的分数。例如「CVSS 10.0 的 RCE」,意味着最高等级的远程代码执行=最坏等级。

CVSS 的评分标准

CVSS 的分数大体由 3 个评估组搭建而成。现实中公布的「CVE-XXXX 是 CVSS 9.8」,绝大多数指的是最上面那一组 基础评估(Base) 的分数。

CVSS 分数 0.0 – 10.0

基础 Base

漏洞本身的性质。公布出来的主体分数。

威胁 Threat

按利用代码的流传程度随时间修正。

环境 Environmental

按你自己的配置・重要度重新计算。

① 易被利用程度

AV 攻击途径AC 复杂度PR 所需权限UI 用户交互

② 影响的大小

S 影响范围C 机密性I 完整性A 可用性
CVSS 的构成。公布出来的主体是『基础评估值(Base)』。威胁・环境用来按你自身情况调整分数。

基础评估大致由 「① 易被利用程度」×「② 影响的大小」 决定。攻击越简单、危害越大,得分越高。下面两个表就是这些评分项目的内容。

① 易被利用程度(攻击有多容易)

指标可取值偏向高分的条件
攻击途径 (AV)网络 / 相邻 / 本地 / 物理网络(隔着互联网)最危险
攻击复杂度 (AC)低 / 高低(不需要特殊条件或运气)危险
所需权限 (PR)不需要 / 低 / 高不需要(连登录都不用)危险
用户交互 (UI)不需要 / 需要不需要(受害者什么都不做也能成立)危险

如果全部都落在「最危险的那一侧」,那就意味着可以隔着网络、轻松、免认证、无需对方操作地发起攻击,这是最坏的前提。

② 影响的大小(一旦成功会发生什么)

CIA 是信息安全三大支柱 机密性・完整性・可用性 的首字母。

指标可取值「高」的含义
影响范围 (S)无变化 / 有变化有变化=侵害越过了原有权限的边界,波及到其他地方
机密性 (C)高 / 低 / 无能把数据一网打尽地读取
完整性 (I)高 / 低 / 无能随意篡改数据
可用性 (A)高 / 低 / 无能彻底停掉服务

“影响范围(S):有变化”会把分数推高

比如,是只在容器内部的危害(无变化),还是从那里侵蚀到宿主机乃至其他服务(有变化),区别就在这里。是否越过这一边界,即便在相同条件下也会让分数大幅变动。

向量字符串:用一行写出分数的构成

CVSS 的分数必定附带一段叫 向量字符串的短字符串。它记录了「选了哪些指标、各自怎么选的」,是分数的依据,读懂它就能明白分数的来由。

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H  →  10.0 (Critical)

把这一行拆开,就能看到所有项目都落在了「最危险的那一侧」。

分段含义本例的选择
AV:N攻击途径 = 网络可隔着网络攻击
AC:L攻击复杂度 = 低轻松成立
PR:N所需权限 = 不需要免认证即可
UI:N用户交互 = 不需要无需受害者操作
S:C影响范围 = 有变化越过边界波及
C:H / I:H / A:H机密性・完整性・可用性 = 全部高全被读取・被篡改・被停掉

区分“10.0”与“9.8”的关键

上例中如果影响范围变成「无变化(S:U)」,那么即便条件相同,分数也会降到 9.8。是否为 S:C(越过边界)就是能否达到最高分 10.0 的分水岭。所以 9.8 和 10.0 可以理解为「两者都是最坏等级,只是危害多扩散了一步」。

v3.1 与 v4.0:如今两者并存

CVSS 有版本之分,现行最新是 v4.0(2023 年公开)。不过现实中的 CVE 大多仍用 v3.1(2019 年) 打分,短期内会并存。

CVSS v3.1CVSS v4.0
公开2019 年2023 年
表记分数 + 向量用 CVSS-B / BT / BE / BTE 明示用途
用户交互(UI)不需要 / 需要 的 2 档细分为 不需要 / 被动 / 主动 的 3 档
影响范围Scope(S) 单一项目分开评估「受击系统」和「波及目标系统」
补充信息无增加是否可自动化・可恢复性・安全性等参考指标

实例:知名漏洞的实际分数

下面是 NVD 上登记的实际分数。从中可以看出:分数未必与现实中的危害大小一致,而且评估者或 CVSS 版本不同,分数也会变。

漏洞CVSS v3.1向量要点说明了什么
Log4Shell(CVE-2021-44228)10.0 Critical所有指标都是最坏值,S:C教科书式的 10.0,出现在被广泛使用的组件里
Apache Struts(CVE-2017-5638)9.8 CriticalS:U(影响范围无变化)在旧版 v2 中是 10.0——版本不同,数字也不同
某 VPN 设备的漏洞(CVE-2018-13379)NVD 9.8 / 产品厂商 9.1评估者对完整性 I 的判断不同同一个 CVE,来源不同分数也不同;据报道是 半田医院事件的入侵入口
Heartbleed(CVE-2014-0160)7.5 High只有机密性 C:H,没有篡改或停机不是 Critical,却成了可能暴露私钥的重大事故

这四个都被收录在美国 CISA 的「已知被利用漏洞目录(KEV)」中。7.5 的 Heartbleed 同样遭到了利用,所以光凭分数无法断定「可以往后放」。

分数之外还要确认什么

懂了评分标准,CVSS 就是个强大的工具。但别忘了分数是 「最坏条件下的理论值」。在实务中,把分数再乘上下面两点来决定优先级,才比较贴近现实。

1

看是否真的在被利用(KEV)

现实中已观测到攻击的漏洞(KEV=Known Exploited Vulnerabilities),无论分数高低都是最优先。比起理论值,「此刻是否正在被攻击」更重要。

2

确认你自己是否在用这个功能

即便是 CVSS 10.0,只要没在用对应的功能或组件,实际危害就很小。反过来,中等分数但在你的生产环境里必然中招,那就是最优先。以「实际在跑的版本」来判定是铁律。

实例:曾有人把已公开的 CVSS 10.0 当作「与我无关」放着不管,结果被踩中而导致非法扣费。分数绝不能成为「可以放着不管的理由」。→ 放任 CVSS 10.0 的故事

如何检查自己的环境

1

查出你在用的软件的 CVE 与分数

查看厂商的安全公告、NVD 或 JVN。如果已经知道 CVE 编号,用本站的 CVE / KEV 查询就能一次看到 CVSS、EPSS 和 KEV。

2

读向量,判断是否适用于你的环境

即便是 AV:N(可隔着网络攻击),如果该功能没有暴露在互联网上,风险就会降低。如果是 PR:L(需要登录),就要确认谁能登录。把向量粘贴到 CVSS 计算与向量解读中,可以看到每一项的含义。

3

让机器去匹配你的依赖

对于自己的 Web 应用,用 依赖漏洞扫描器或 Dependabot 扫描锁文件,列出相关的 CVE 和分数。这比靠肉眼逐个追踪可靠得多。

出处(一手资料)

  • FIRST, "CVSS v3.1 Specification Document" — first.org(指标与严重程度等级)
  • FIRST, "CVSS v4.0 Specification Document" — first.org
  • NIST NVD, "CVE-2014-0160" — nvd.nist.gov(CVE-2021-44228、CVE-2017-5638、CVE-2018-13379 的分数与向量同样在各自的 NVD 页面上确认)
  • CISA, "Known Exploited Vulnerabilities Catalog" — cisa.gov
  • FIRST, "Exploit Prediction Scoring System (EPSS)" — first.org

接下来阅读

FAQ

QCVSS 有评分标准吗?是凭感觉定的吗?
A

有明确的标准。选定攻击途径(AV)・攻击复杂度(AC)・所需权限(PR)・用户交互(UI)・影响范围(S)・机密性/完整性/可用性(CIA)这些既定指标,再通过公开的公式算出 0.0~10.0。它被设计成:只要输入相同,谁来评估都会得到相同分数——是一套可复现的机制。

Q分数是谁定的?
A

规范本身由 FIRST(全球事件响应组织的联盟)制定并公开。每个 CVE 的具体分数,由美国的 NVD(NIST)或厂商(产品提供方)按规范的指标打分并公布。同一个漏洞,不同评估者打出的分数有时会略有差异。

QCVSS 多少分算危险?
A

大致是 9.0~10.0 为 Critical(最严重),7.0~8.9 为 High(高),4.0~6.9 为 Medium,0.1~3.9 为 Low。不过分数是「最坏条件下的理论值」,所以还要结合你自己的环境里是否真的中招来一起判断。

QCVSS 高就一定要最优先修复吗?
A

基本上是,但更重要的是「是否真的观测到了被利用(KEV)」和「你自己是否在用这个功能」。CVSS 10.0 但没在用的话,影响也可能为零;反过来,中等分数但正在被利用,就是最优先。

Qv3.1 和 v4.0,该看哪个?
A

现行最新是 2023 年公开的 v4.0,但现实中大量 CVE 仍然用 v3.1 打分。短期内两者会并存。读法的基本原理(用指标通过公式算出 0~10)是相通的,所以本文的思路对哪个版本都适用。

QCVSS 10.0 意味着什么?
A

这是最高分。当攻击可以隔着网络、轻松、无需登录、无需用户任何操作地成立,能读取、篡改、停掉一切,并且危害越过了漏洞软件自身的边界时,就会给出 10.0。用 v3.1 的向量表示是 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H。Log4Shell(CVE-2021-44228)和 XZ Utils 后门(CVE-2024-3094)都是 10.0。

Q在哪里可以查到某个 CVE 的 CVSS 分数?
A

可以在 NVD(美国 NIST 的国家漏洞数据库)、JVN(由 JPCERT/CC 与 IPA 运营的日本漏洞数据库)以及厂商自己的安全公告中查到。同一个 CVE 由不同评估者打分可能不同,所以要留意你看的是谁的分数。本站的 CVE / KEV 查询工具输入 CVE 编号,就能同时看到 CVSS 分数和是否正被利用(KEV)。

QCVSS 和 EPSS 有什么区别?
A

CVSS 是表示『一旦被利用会有多严重』的 0~10 分数;EPSS 是估计『未来 30 天内被利用的概率』(0~1)。两者都由 FIRST 发布。CVSS 高而 EPSS 低、或者反过来的情况都有,所以先修哪个,要把 CVSS、EPSS 和 KEV(是否正被实际利用)结合起来判断。