Skip to content

Commit a24ada2

Browse files
Updated with RFD as requested by @ccoffin
1 parent fc13951 commit a24ada2

File tree

2 files changed

+560
-380
lines changed

2 files changed

+560
-380
lines changed

rfds/0459-SSVC-2-0-0-add.md

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
# Adding SSVC 2.0.0 as optional structured metrics to CVE metrics block
2+
3+
| Field | Value |
4+
|:-----------------|:-------|
5+
| RFD Submitter | Vijay Sarvepalli (CERT/CC) |
6+
| RFD Pull Request | [RFD #0459](https://github.com/CVEProject/cve-schema/pull/459) |
7+
8+
## Summary
9+
[summary]: #summary
10+
11+
This proposal adds support for ** Stakeholder-Specific Vulnerability Categorization (SSVC) 2.0.0** as an optional structured element under the CVE `metrics` block.
12+
13+
Currently, SSVC data is included inconsistently in the unstructured `"other"` field, which limits its machine readability, interoperability, and adoption. By providing a formal schema location for SSVC, CVE Records will be able to more reliably capture and distribute this emerging prioritization framework.
14+
15+
## Problem Statement
16+
[problem-statement]: #problem-statement
17+
18+
- SSVC is operationally used by organizations (e.g., CISA, VulnCheck, CERT/CC) to prioritize vulnerability response.
19+
- Today, SSVC values are often published only in custom structured, reducing consistency and limiting automated analysis.
20+
- Embedding SSVC data in the `"other"` field of CVE Records creates barriers to adoption:
21+
- Lack of machine readability and tooling support.
22+
- Inconsistent implementations across CNAs and ADPs.
23+
- Increased cost for downstream consumers to parse and normalize data.
24+
25+
Without a structured, standardized location in the CVE schema, SSVC cannot fulfill its intended role as a practical complement to CVSS and other metrics.
26+
27+
## Proposed Solution
28+
[proposed-solution]: #proposed-solution
29+
30+
- Add an optional `ssvc` object under the `metrics` block of the CVE Record schema.
31+
- Specify versioned support (both schema versions 1.0.0 and 2.0.0 are included).
32+
- Ensure fields capture the core SSVC decision points and outcomes in a standardized way.
33+
- Maintain backwards compatibility with existing CVE Records (non-breaking change).
34+
35+
This ensures that CVE Records can cleanly incorporate SSVC alongside other structured metrics such as CVSS and EPSS.
36+
37+
## Examples
38+
[examples]: #examples
39+
40+
The test-cases for PR [#459](https://github.com/CVEProject/cve-schema/pull/459) illustrate how SSVC data can be expressed. For example:
41+
42+
https://certcc.github.io/SSVC/data/schema_examples/CVE-1900-1234-Decision_Point_Value_Selection-2-0-0.json
43+
44+
```json
45+
{
46+
"target_ids": ["CVE-1900-1234"],
47+
"timestamp": "2021-09-29T15:29:44Z",
48+
"schemaVersion": "2.0.0",
49+
"selections": [
50+
{
51+
"namespace": "ssvc",
52+
"name": "Exploitation",
53+
"key": "E",
54+
"version": "1.1.0",
55+
"values": [
56+
{"name":"Active", "key": "A"}
57+
]
58+
},
59+
{
60+
"namespace": "ssvc",
61+
"name": "Automatable",
62+
"key": "A",
63+
"version": "2.0.0",
64+
"values": [
65+
{"name": "Yes", "key": "Y"}
66+
]
67+
},
68+
{
69+
"namespace": "ssvc",
70+
"name": "Technical Impact",
71+
"key": "TI",
72+
"version": "1.0.0",
73+
"values": [
74+
{"name": "Total","key":"T"}
75+
]
76+
}
77+
]
78+
}
79+
```
80+
81+
## Impact Assessment
82+
[impact-assessment]: #impact-assessment
83+
84+
For CNAs/ADPs: Provides a formal schema location to include SSVC, reducing ambiguity and effort in data publication.
85+
86+
For Consumers: Simplifies automated ingestion of SSVC data, reducing the need for scraping or custom parsers.
87+
88+
For the CVE Program: Strengthens the role of CVE Records as a hub for standardized vulnerability metadata, aligning with the needs of defenders and decision-makers.
89+
90+
## Compatibility and Migration
91+
[compatibility-and-migration]: #compatibility-and-migration
92+
93+
Backwards compatible: Existing CVE Records and tooling remain unaffected.
94+
95+
Adoption is optional: CNAs/ADPs can choose whether to include SSVC.
96+
97+
Migration path: CNAs currently embedding SSVC in "other" fields can gradually shift to using the structured ssvc block.
98+
99+
## Success Metrics [success-metrics]: #success-metrics
100+
101+
RFD will be considered successful if:
102+
* At least one ADP (e.g., CISA, VulnCheck, CERT/CC) adopts the new structured ssvc block within one year.
103+
104+
* Major consumer tools (CVE Services,vuln enrichment pipelines, dashboards) can automatically parse SSVC data without special parsing logic.
105+
106+
If adoption is slow, additional tooling or guidance may be provided to ease integration.
107+
108+
## Supporting Data or Research
109+
[supporting-data-or-research]: #supporting-data-or-research
110+
111+
CISA Vulnrichment and VulnCheck both actively publish SSVC prioritization data, but not in a standardized, machine-readable format.
112+
113+
VulnCheck currently has SSVC coverage for 244,866 CVEs, while CISA Vulnrichment covers 64,142 CVEs.
114+
115+
See: Automating SSVC (VulnCheck blog)[[https://www.vulncheck.com/blog/automating-ssvc]
116+
117+
118+
119+
## Related Issues or Proposals
120+
[related-issues-or-proposals]: #related-issues-or-proposals
121+
122+
* CVE Schema discussion on extending metrics beyond CVSS.
123+
124+
* Related work on EPSS and KEV integration into CVE Records.
125+
126+
## Recommended Priority
127+
[recommended-priority]: #recommended-priority
128+
129+
Medium.
130+
131+
SSVC is not yet universal, but adoption is growing rapidly.
132+
133+
Providing structured schema support now will prevent fragmentation and reduce downstream costs.
134+
135+
## Unresolved Questions
136+
[unresolved-questions]: #unresolved-questions
137+
138+
No new questions arise except other known concerns in metrics
139+
140+
## Future Possibilities
141+
[future-possibilities]: #future-possibilities
142+
143+
Tooling for Vulnogram and cveClient to adopt and use SSVC natively
144+
145+

0 commit comments

Comments
 (0)