Skip to content

🤝 用户交互 (UI) ​

🟦 基础指标 · 📐 评分影响(依赖版本)

定义 ​

用户交互 (UI) 刻画利用漏洞是否需要(攻击者以外的)用户执行某项动作。None 表示无需任何用户参与即可利用漏洞系统;Required 表示必须由用户先执行某动作(如打开文档、点击链接)才能利用。

取值 ​

短值长值分数 (v3.1)分数 (v3.0)描述
NNone0.850.85无需任何用户交互即可利用漏洞系统。
RRequired0.620.56成功利用需要用户先执行某动作。

分数取自 pkg/vector/user_interaction.go(GetUserInteractionScore 辅助函数)。UserInteractionRequired 的静态 Score 字段为 v3.1 取值(0.62)。

分数映射 ​

None = 无需用户交互(0.85,更危险)。Required = 用户需先执行动作。版本敏感:UI:R 在 v3.1 计 0.62,在 v3.0 计 0.56(v3.0 对 Required 惩罚更重)。

评分影响 ​

UI 是可利用性子分的乘数。关键要点:UI:R 在 CVSS v3.0 中为 0.56,在 v3.1 中为 0.62。v3.1 规范上调了该值,以更准确反映"需要用户交互"是比最初建模更轻的 deterrent。UI:N 在两个版本中相同(0.85)。

务必从向量字符串读取版本前缀,并调用 GetUserInteractionScore(ui, minorVersion)——minorVersion 为 0(v3.0)或 1(v3.1)。

示例 ​

跨两个 CVSS 版本对比 UI:N 与 UI:R:

bash
# CVSS v3.1
cvss score "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"  # UI:N
cvss score "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"  # UI:R (0.62)

# CVSS v3.0
cvss score "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"  # UI:N
cvss score "CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"  # UI:R (0.56)
text
9.8 (Critical)   # UI:N  v3.1
8.8 (High)       # UI:R  v3.1  (0.62)
9.8 (Critical)   # UI:N  v3.0
8.5 (High)       # UI:R  v3.0  (0.56)

注意 v3.0 的 UI:R(8.5)与 v3.1 的 UI:R(8.8)相差 0.3 分——完全由 0.56 → 0.62 的分数变化导致。

Go SDK — 传入 CVSS 次版本号:

go
package main

import (
    "fmt"

    "github.com/scagogogo/cvss-skills/pkg/vector"
)

func main() {
    req, _ := vector.GetUserInteraction('R')
    fmt.Println(vector.GetUserInteractionScore(req, 0)) // 0.56 (v3.0)
    fmt.Println(vector.GetUserInteractionScore(req, 1)) // 0.62 (v3.1)
}

源码位置 ​

pkg/vector/user_interaction.go — 定义 UserInteractionNone (0.85) 与 UserInteractionRequired(静态 0.62),以及处理 v3.0/v3.1 差异的 GetUserInteractionScore(ui, minorVersion) 辅助函数。

相关 ​

基于 MIT 许可证发布。