Skip to content

📋 enumerate ​

CVSS v3.0CVSS v3.1文本 + JSON

简介 ​

cvss enumerate 是一个参考命令:它列出所有 CVSS v3.x 指标、其合法取值与每个取值的分数,按 Base / Temporal / Environmental 分组。用 --metric 聚焦单个指标,或用 --validate-value 校验某个 指标:取值 是否合法。

工作原理 ​

不带参数时列出所有 CVSS v3.x 指标及其合法取值与各取值评分;--metric 聚焦单个指标,--validate-value 校验单个 METRIC:VALUE 对。

用法 ​

cvss enumerate [flags]

Flags ​

Flag默认值说明
--format stringtext输出格式:text 或 json
--metric string""仅显示某指标详情(如 AV)
--validate-value string""校验 指标:取值(如 AV:N)
-h, --help—enumerate 的帮助

示例 ​

bash
cvss enumerate --metric AV
# 输出:
# AV (Attack Vector) [Base]:
#   N = Network (score: 0.85)
#   A = Adjacent (score: 0.62)
#   L = Local (score: 0.55)
#   P = Physical (score: 0.20)
bash
cvss enumerate
bash
cvss enumerate --validate-value AV:N
bash
cvss enumerate --format json

--validate-value 的退出码

--validate-value 在取值合法时退出 0,非法时退出 1(打印 Invalid: X is not a valid value for METRIC)。因此可在脚本中用作守卫。

底层 API ​

go
import "github.com/scagogogo/cvss-skills/pkg/cvss"

// 列出所有指标,按 Base/Temporal/Environmental 分组。
metrics := cvss.ListAllMetrics() // []MetricInfo
for _, m := range metrics {
    fmt.Print(m.String())
}

// 聚焦单个指标。
info, err := cvss.GetMetricInfo("AV") // (MetricInfo, error)
if err != nil {
    log.Fatal(err)
}
fmt.Print(info.String())

// 校验单个取值(rune)。
valid := cvss.IsValidMetricValue("AV", 'N') // bool

三块基石是 ListAllMetrics() []MetricInfo、GetMetricInfo(shortName string) (MetricInfo, error) 与 IsValidMetricValue(shortName string, value rune) bool。

相关命令 ​

  • validate —— 校验整条向量字符串
  • get —— 从向量中读取单个指标值
  • build —— 用指标 flag 组装向量

基于 MIT 许可证发布。