Skip to content

Commit ab891f7

Browse files
authored
Merge pull request #879 from tschmidtb51/disclosure_date
Disclosure date
2 parents 97f8f01 + 7e90404 commit ab891f7

34 files changed

+991
-30
lines changed

csaf_2.1/examples/csaf/rhsa-2021_5186.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@
173173
"version": "4.6"
174174
}
175175
],
176+
"disclosure_date": "2021-12-10T00:00:00Z",
176177
"discovery_date": "2021-12-13T00:00:00Z",
177178
"ids": [
178179
{
@@ -228,7 +229,6 @@
228229
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2031667"
229230
}
230231
],
231-
"release_date": "2021-12-10T00:00:00Z",
232232
"remediations": [
233233
{
234234
"category": "vendor_fix",
@@ -252,6 +252,7 @@
252252
},
253253
{
254254
"cve": "CVE-2021-4125",
255+
"disclosure_date": "2021-12-16T00:00:00Z",
255256
"discovery_date": "2021-12-16T00:00:00Z",
256257
"ids": [
257258
{
@@ -297,7 +298,6 @@
297298
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2033121"
298299
}
299300
],
300-
"release_date": "2021-12-16T00:00:00Z",
301301
"remediations": [
302302
{
303303
"category": "vendor_fix",
@@ -320,4 +320,4 @@
320320
"title": "CVE-2021-4125 kube-reporting/hive: Incomplete fix for log4j CVE-2021-44228 and CVE-2021-45046"
321321
}
322322
]
323-
}
323+
}

csaf_2.1/examples/csaf/rhsa-2021_5217.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@
124124
"version": "4.6"
125125
}
126126
],
127+
"disclosure_date": "2021-12-16T17:05:00Z",
127128
"discovery_date": "2021-12-17T00:00:00Z",
128129
"ids": [
129130
{
@@ -165,7 +166,6 @@
165166
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2033602"
166167
}
167168
],
168-
"release_date": "2021-12-16T17:05:00Z",
169169
"remediations": [
170170
{
171171
"category": "vendor_fix",
@@ -186,4 +186,4 @@
186186
"title": "CVE-2021-4133 Keycloak: Incorrect authorization allows unpriviledged users to create other users"
187187
}
188188
]
189-
}
189+
}

csaf_2.1/examples/csaf/rhsa-2022_0011.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,7 @@
348348
"version": "4.6"
349349
}
350350
],
351+
"disclosure_date": "2020-02-28T00:00:00Z",
351352
"discovery_date": "2020-03-06T00:00:00Z",
352353
"ids": [
353354
{
@@ -393,7 +394,6 @@
393394
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=1811673"
394395
}
395396
],
396-
"release_date": "2020-02-28T00:00:00Z",
397397
"remediations": [
398398
{
399399
"category": "vendor_fix",
@@ -428,4 +428,4 @@
428428
"title": "CVE-2020-10188 telnet-server: no bounds checks in nextitem() function allows to remotely execute arbitrary code"
429429
}
430430
]
431-
}
431+
}

csaf_2.1/json_schema/csaf_json_schema.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,6 +1099,12 @@
10991099
}
11001100
}
11011101
},
1102+
"disclosure_date": {
1103+
"title": "Disclosure date",
1104+
"description": "Holds the date and time the vulnerability was originally disclosed to the public.",
1105+
"type": "string",
1106+
"format": "date-time"
1107+
},
11021108
"discovery_date": {
11031109
"title": "Discovery date",
11041110
"description": "Holds the date and time the vulnerability was originally discovered.",
@@ -1348,12 +1354,6 @@
13481354
"description": "Holds a list of references associated with this vulnerability item.",
13491355
"$ref": "#/$defs/references_t"
13501356
},
1351-
"release_date": {
1352-
"title": "Release date",
1353-
"description": "Holds the date and time the vulnerability was originally released into the wild.",
1354-
"type": "string",
1355-
"format": "date-time"
1356-
},
13571357
"remediations": {
13581358
"title": "List of remediations",
13591359
"description": "Contains a list of remediations.",

csaf_2.1/prose/edit/etc/bind.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ tests-01-mndtr-41-missing-sharing-group-name.md
7575
tests-01-mndtr-42-purl-qualifiers.md
7676
tests-01-mndtr-43-use-of-multiple-stars-in-model-number.md
7777
tests-01-mndtr-44-use-of-multiple-stars-in-serial-number.md
78+
tests-01-mndtr-45-inconsistent-disclosure-date.md
7879
tests-02-optional.md
7980
tests-03-informative.md
8081
distributing.md

csaf_2.1/prose/edit/src/conformance.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ Secondly, the program fulfills the following for all items of:
146146
been removed.
147147
* If a `vuln:CWE` instance refers to a CWE category or view, the CVRF CSAF converter MUST omit this instance and output a
148148
warning that this CWE has been removed as its usage is not allowed in vulnerability mappings.
149+
* `/vulnerabilities[]/disclosure_date`: If a `vuln:ReleaseDate` was given, the CVRF CSAF converter MUST convert its value into the `disclosure_date`.
149150
* `/vulnerabilities[]/ids`: If a `vuln:ID` element is given, the CVRF CSAF converter converts it into the first item of the `ids` array.
150151
* `/vulnerabilities[]/remediations[]`:
151152
* If neither `product_ids` nor `group_ids` are given, the CVRF CSAF converter appends all Product IDs which are listed under
@@ -604,7 +605,7 @@ Secondly, the program fulfills the following for all items of:
604605
> This is done to create a deterministic conversion.
605606
606607
The tool SHOULD implement an option to use the latest available CWE version at the time of the conversion that still matches.
607-
608+
* `/vulnerabilities[]/disclosure_date`: If a `release_date` was given, the CSAF 2.0 to CSAF 2.1 converter MUST convert the key as `disclosure_date`.
608609
* `/vulnerabilities[]/remediations[]`:
609610
* The CSAF 2.0 to CSAF 2.1 converter MUST convert any remediation with the category `vendor_fix` into the category `optional_patch`
610611
if the product in question is in one of the product status groups "Not Affected" or "Fixed" for this vulnerability.

csaf_2.1/prose/edit/src/guidance-on-size.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,10 +263,10 @@ The maximum length of strings representing a temporal value is given by the form
263263
* `/document/tracking/generator/date`
264264
* `/document/tracking/initial_release_date`
265265
* `/document/tracking/revision_history[]/date`
266+
* `/vulnerabilities[]/disclosure_date`
266267
* `/vulnerabilities[]/discovery_date`
267268
* `/vulnerabilities[]/flags[]/date`
268269
* `/vulnerabilities[]/involvements[]/date`
269-
* `/vulnerabilities[]/release_date`
270270
* `/vulnerabilities[]/remediations[]/date`
271271
* `/vulnerabilities[]/threats[]/date`
272272

csaf_2.1/prose/edit/src/schema-elements-02-props-04-vulnerabilities.md

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ properties represents a list of all relevant vulnerability information items.
1515
The Vulnerability item of value type `object` with 1 or more properties is a container for the aggregation of all fields that are related to
1616
a single vulnerability in the document.
1717
Any vulnerability MAY provide the optional properties Acknowledgments (`acknowledgments`), Common Vulnerabilities and Exposures (CVE) (`cve`),
18-
Common Weakness Enumeration (CWE) (`cwes`), Discovery Date (`discovery_date`), Flags (`flags`), IDs (`ids`), Involvements (`involvements`),
19-
Metrics (`metrics`), Notes (`notes`), Product Status (`product_status`), References (`references`), Release Date (`release_date`),
18+
Common Weakness Enumeration (CWE) (`cwes`), Disclosure Date (`disclosure_date`), Discovery Date (`discovery_date`), Flags (`flags`), IDs (`ids`),
19+
Involvements (`involvements`), Metrics (`metrics`), Notes (`notes`), Product Status (`product_status`), References (`references`),
2020
Remediations (`remediations`), Threats (`threats`), and Title (`title`).
2121

2222
```
@@ -30,6 +30,9 @@ Remediations (`remediations`), Threats (`threats`), and Title (`title`).
3030
"cwes": {
3131
// ...
3232
},
33+
"disclosure_date": {
34+
// ...
35+
},
3336
"discovery_date": {
3437
// ...
3538
},
@@ -54,9 +57,6 @@ Remediations (`remediations`), Threats (`threats`), and Title (`title`).
5457
"references": {
5558
// ...
5659
},
57-
"release_date": {
58-
// ...
59-
},
6060
"remediations": {
6161
// ...
6262
},
@@ -168,6 +168,15 @@ When creating or modifying a CSAF document, the latest published version of the
168168
"4.12"
169169
```
170170

171+
#### Vulnerabilities Property - Disclosure Date
172+
173+
Disclosure date (`disclosure_date`) with value type `string` of format `date-time` holds the date and time
174+
the vulnerability was originally disclosed to the public.
175+
176+
For vulnerabilities not yet disclosed to the public, a disclosure date in the future SHOULD indicate the intended date for disclosure of the vulnerability.
177+
As disclosure dates may change during a vulnerability disclosure process, an issuing party SHOULD produce an updated CSAF document to confirm that the
178+
vulnerability was in fact disclosed to the public at that time or update the `disclosure_date` with the new intended date in the future.
179+
171180
#### Vulnerabilities Property - Discovery Date
172181

173182
Discovery date (`discovery_date`) of value type `string` with format `date-time` holds the date and time the vulnerability was originally discovered.
@@ -569,11 +578,6 @@ list of references associated with this vulnerability item.
569578
},
570579
```
571580

572-
#### Vulnerabilities Property - Release Date
573-
574-
Release date (`release_date`) with value type `string` of format `date-time` holds the date and time
575-
the vulnerability was originally released into the wild.
576-
577581
#### Vulnerabilities Property - Remediations
578582

579583
List of remediations (`remediations`) of value type `array` with 1 or more Remediation items of value type `object` contains a list of remediations.

csaf_2.1/prose/edit/src/tests-01-mndtr-37-date-and-time.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ The relevant path for this test is:
99
/document/tracking/generator/date
1010
/document/tracking/initial_release_date
1111
/document/tracking/revision_history[]/date
12+
/vulnerabilities[]/disclosure_date
1213
/vulnerabilities[]/discovery_date
1314
/vulnerabilities[]/flags[]/date
14-
/vulnerabilities[]/release_date
1515
/vulnerabilities[]/involvements[]/date
1616
/vulnerabilities[]/remediations[]/date
1717
/vulnerabilities[]/threats[]/date
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
### Inconsistent Disclosure Date
2+
3+
For each vulnerability, it MUST be tested that the `disclosure_date` is earlier or equal to the `date` of the newest item of the `revision_history`
4+
if the document is labeled `TLP:CLEAR` and the document status is `final` or `interim`.
5+
As the timestamps might use different timezones, the sorting MUST take timezones into account.
6+
7+
The relevant path for this test is:
8+
9+
```
10+
/vulnerabilities[]/disclosure_date
11+
```
12+
13+
*Example 1 (which fails the test):*
14+
15+
```
16+
"document": {
17+
// ...
18+
"distribution": {
19+
"tlp": {
20+
"label": "CLEAR"
21+
}
22+
},
23+
// ...
24+
"tracking": {
25+
// ...
26+
"revision_history": [
27+
{
28+
"date": "2024-01-24T10:00:00.000Z",
29+
"number": "1",
30+
"summary": "Initial version."
31+
}
32+
],
33+
"status": "final",
34+
// ...
35+
}
36+
},
37+
"vulnerabilities": [
38+
{
39+
"disclosure_date": "2024-02-24T10:00:00.000Z"
40+
}
41+
]
42+
```
43+
44+
> The document is labeled `TLP:CLEAR` and in status `final` but the `disclosure_date` is newer than the date of newest item in the `revision_history`.

0 commit comments

Comments
 (0)