You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/vex-ga-details.md
+40-97Lines changed: 40 additions & 97 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,34 +1,34 @@
1
-
# CSAF-VEX Beta Details
1
+
# CSAF-VEX GA Details
2
2
3
-
This document is intended to cover the changes made in the new release of beta VEX files compared to the legacy VEX files. These changes are broken out by the three main CSAF VEX document sections: Document, Product Tree and Vulnerabilities.
3
+
This document is intended to cover the changes made in the new release of GA VEX files compared to the legacy VEX files. These changes are broken out by the three main CSAF VEX document sections: Document, Product Tree and Vulnerabilities.
4
4
5
-
++Please Note:++ The beta VEX files may experience minor changes as we address any final known issues. We aim to keep this documentation in sync with the changes, but there may be times when the documentation and implementation are not aligned. If you have questions on any of these changes, please see [How to Provide Feedback](https://redhatproductsecurity.github.io/security-data-guidelines/vex-beta-details/#how-to-provide-feedback).
5
+
++Please Note:++ The GA VEX files may experience minor changes as we address any final known issues. We aim to keep this documentation in sync with the changes, but there may be times when the documentation and implementation are not aligned. If you have questions on any of these changes, please see [How to Provide Feedback](https://redhatproductsecurity.github.io/security-data-guidelines/vex-GA-details/#how-to-provide-feedback).
6
6
7
7
## Document Section
8
8
9
-
The new beta VEX files include a few minor changes to the `document` section, outlined in the sections below.
9
+
The new GA VEX files include a few minor changes to the `document` section, outlined in the sections below.
10
10
11
11
### Document Changes
12
12
13
13
#### Title
14
14
15
-
Previously, the `document.title` followed the format component:CVE title. The title in the beta VEX files removed the component prefix. This decision was made to simplify the title and remove confusion when a CVE affects multiple components.
15
+
Previously, the `document.title` followed the format component:CVE title. The title in the GA VEX files removed the component prefix. This decision was made to simplify the title and remove confusion when a CVE affects multiple components.
16
16
17
17
```json
18
18
# Example of legacy VEX title
19
19
"title": "glibc: Integer overflow in memalign leads to heap corruption",
20
20
```
21
21
22
22
```json
23
-
# Example of beta VEX title
23
+
# Example of GA VEX title
24
24
"title": "Integer overflow in memalign leads to heap corruption",
25
25
```
26
26
27
27
#### Tracking
28
28
29
-
The `document.tracking` object has two changes in the new beta VEX files: the generator name has changed and the revision history has been simplified.
29
+
The `document.tracking` object has two changes in the new GA VEX files: the generator name has changed and the revision history has been simplified.
30
30
31
-
In the new beta VEX files, the `document.tracking.generator.engine.name` now references the new service responsible for creating VEX files, "CSAF Generator".
31
+
In the new GA VEX files, the `document.tracking.generator.engine.name` now references the new service responsible for creating VEX files, "CSAF Generator".
32
32
33
33
```json
34
34
# Example of legacy VEX generator
@@ -43,7 +43,7 @@ In the new beta VEX files, the `document.tracking.generator.engine.name` now ref
43
43
```
44
44
45
45
```json
46
-
# Example of beta VEX generator
46
+
# Example of GA VEX generator
47
47
"generator": {
48
48
"date": "2026-02-27T12:07:46+00:00",
49
49
"engine": {
@@ -53,7 +53,7 @@ In the new beta VEX files, the `document.tracking.generator.engine.name` now ref
53
53
},
54
54
```
55
55
56
-
The `document.tracking.revision_history` has also been updated in the new beta VEX files. Previously, the revision history object implemented some logic to create a history of changes, which was neither accurate nor comprehensive of the historical changes to an individual VEX file. In the new beta VEX files, there will only be one revision that represents the last generated version.
56
+
The `document.tracking.revision_history` has also been updated in the new GA VEX files. Previously, the revision history object implemented some logic to create a history of changes, which was neither accurate nor comprehensive of the historical changes to an individual VEX file. In the new GA VEX files, there will only be one revision that represents the last generated version.
57
57
58
58
```json
59
59
# Example of legacy VEX revision history
@@ -77,7 +77,7 @@ The `document.tracking.revision_history` has also been updated in the new beta V
77
77
```
78
78
79
79
```json
80
-
# Example of beta VEX revision history
80
+
# Example of GA VEX revision history
81
81
"revision_history": [
82
82
{
83
83
"date": "2026-02-27T12:07:46+00:00",
@@ -90,7 +90,7 @@ The `document.tracking.revision_history` has also been updated in the new beta V
90
90
91
91
### Removed Document Objects
92
92
93
-
The following optional objects were removed from the `document` section and will not be present in the new beta VEX files:
93
+
The following optional objects were removed from the `document` section and will not be present in the new GA VEX files:
94
94
95
95
-`document.distribution`
96
96
-`document.lang`
@@ -99,11 +99,11 @@ The following optional objects were removed from the `document` section and will
99
99
100
100
## Product Tree Section
101
101
102
-
The `product_tree` section of VEX files includes the most significant changes between legacy VEX files and the new beta VEX files.
102
+
The `product_tree` section of VEX files includes the most significant changes between legacy VEX files and the new GA VEX files.
103
103
104
104
### Branch Removal
105
105
106
-
In the `product_tree` section of a VEX file, legacy VEX files used to nest `product_name` objects under `product_family` branches and `product_version` objects under `architecture` branches, depending on the fix status of each. The new beta VEX files remove any branch nesting. All `product_name` and `product_version` objects will only be nested under the parent `vendor` branch.
106
+
In the `product_tree` section of a VEX file, legacy VEX files used to nest `product_name` objects under `product_family` branches and `product_version` objects under `architecture` branches, depending on the fix status of each. The new GA VEX files remove any branch nesting. All `product_name` and `product_version` objects will only be nested under the parent `vendor` branch.
107
107
108
108
```json
109
109
# Example of legacy VEX branch nesting
@@ -135,7 +135,7 @@ In the `product_tree` section of a VEX file, legacy VEX files used to nest `prod
135
135
```
136
136
137
137
```json
138
-
# Example of beta VEX branch nesting
138
+
# Example of GA VEX branch nesting
139
139
"branches": [
140
140
{
141
141
"category": "vendor",
@@ -159,11 +159,11 @@ In the `product_tree` section of a VEX file, legacy VEX files used to nest `prod
159
159
160
160
### Product Changes
161
161
162
-
The new beta VEX files include three notable changes to product representation: products are now always represented with a minor version, the product naming convention has been modified for improved consistency and product variants have been eliminated for simplicity.
162
+
The new GA VEX files include three notable changes to product representation: products are now always represented with a minor version, the product naming convention has been modified for improved consistency and product variants have been eliminated for simplicity.
163
163
164
164
#### Product Granularity
165
165
166
-
Previously, legacy VEX files only represented a product with a minor version when a fix was available. New beta VEX files include representation for any supported minor version, regardless of fix status. This change is intended to provide better affectedness information for each support version of a product that may be impacted by a vulnerability.
166
+
Previously, legacy VEX files only represented a product with a minor version when a fix was available. New GA VEX files include representation for any supported minor version, regardless of fix status. This change is intended to provide better affectedness information for each support version of a product that may be impacted by a vulnerability.
167
167
168
168
In the example for CVE-2026-0861, the [legacy VEX file](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-0861.json) only includes a single `product_name` entry to represent the status of Red Hat Enterprise Linux 8.
169
169
@@ -182,10 +182,10 @@ In the example for CVE-2026-0861, the [legacy VEX file](https://security.access.
182
182
}
183
183
```
184
184
185
-
The [beta VEX file](https://security.access.redhat.com/data/csaf/v2/vex-feed/2026/cve-2026-0861.json) includes 5 `product_name` entries to represent the status of each supported version of Red Hat Enterprise Linux 8.
185
+
The [GA VEX file](https://security.access.redhat.com/data/csaf/v2/vex-feed/2026/cve-2026-0861.json) includes 5 `product_name` entries to represent the status of each supported version of Red Hat Enterprise Linux 8.
186
186
187
187
```json
188
-
# Example of beta VEX RHEL 8 product representation
188
+
# Example of GA VEX RHEL 8 product representation
189
189
{
190
190
"category": "product_name",
191
191
"name": "Red Hat Enterprise Linux 8.10.z",
@@ -245,12 +245,12 @@ The [beta VEX file](https://security.access.redhat.com/data/csaf/v2/vex-feed/202
245
245
246
246
#### Product Naming
247
247
248
-
Previously, legacy VEX files used different naming schemas based on the fix status of the product. The new beta VEX files has standardized on a naming schema to improve consistency of a product's representation throughout the entire lifecycle of a VEX file.
248
+
Previously, legacy VEX files used different naming schemas based on the fix status of the product. The new GA VEX files has standardized on a naming schema to improve consistency of a product's representation throughout the entire lifecycle of a VEX file.
249
249
250
-
By comparing the Openshift 4.18 in legacy VEX files for [CVE-2025-12801](https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-12801.json) and [CVE-2025-6176](https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-6176.json), you can see that the `product_id` changes format from "red_hat_openshift_container_platform_4" in an unfixed state to "9Base-RHOSE-4.18" in a fixed state.
250
+
By comparing the Openshift 4.18 in legacy VEX files for [CVE-2023-26819](https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2023-126819.json) and [CVE-2025-6176](https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-6176.json), you can see that the `product_id` changes format from "red_hat_openshift_container_platform_4" in an unfixed state to "9Base-RHOSE-4.18" in a fixed state.
251
251
252
252
```json
253
-
# Example of legacy VEX unfixed product name for CVE-2025-12801
253
+
# Example of legacy VEX unfixed product name for CVE-2023-26819
254
254
{
255
255
"category": "product_name",
256
256
"name": "Red Hat OpenShift Container Platform 4",
@@ -277,10 +277,10 @@ By comparing the Openshift 4.18 in legacy VEX files for [CVE-2025-12801](https:/
277
277
}
278
278
```
279
279
280
-
In new beta VEX files for [CVE-2025-12801](https://security.access.redhat.com/data/csaf/v2/vex-feed/2025/cve-2025-12801.json) and [CVE-2025-6176](https://security.access.redhat.com/data/csaf/v2/vex-feed/2025/cve-2025-6176.json), the `product_id` value remains the same between fixed and unfixed states.
280
+
In new GA VEX files for [CVE-2023-26819](https://security.access.redhat.com/data/csaf/v2/vex-feed/2023/cve-2023-26819.json) and [CVE-2025-6176](https://security.access.redhat.com/data/csaf/v2/vex-feed/2025/cve-2025-6176.json), the `product_id` value follows the same naming convention between fixed and unfixed states, only varying in the channel specifier.
281
281
282
282
```json
283
-
# Example of beta VEX unfixed product name for CVE-2025-12801
283
+
# Example of GA VEX unfixed product name for CVE-2023-26819
284
284
{
285
285
"category": "product_name",
286
286
"name": "OpenShift Container Platform 4.18",
@@ -293,86 +293,29 @@ In new beta VEX files for [CVE-2025-12801](https://security.access.redhat.com/da
293
293
}
294
294
}
295
295
296
-
# Example of beta VEX fixed product name for CVE-2025-6176
296
+
# Example of GA VEX fixed product name for CVE-2025-6176
297
297
{
298
298
"category": "product_name",
299
299
"name": "OpenShift Container Platform 4.18",
300
300
"product": {
301
301
"name": "OpenShift Container Platform 4.18",
302
-
"product_id": "openshift-4.18",
302
+
"product_id": "openshift-4.18::el9",
303
303
"product_identification_helper": {
304
-
"cpe": "cpe:/a:redhat:openshift:4.18"
305
-
}
306
-
}
307
-
},
308
-
309
-
```
310
-
311
-
#### Product Variants
312
-
313
-
The new beta VEX files change how multiple product variants are represented. For RHEL products, only the 'appstream' variant will be represented. For other products that are based on RHEL, the RHEL base version will be represented like '::el8'.
314
-
315
-
```json
316
-
# Example of legacy VEX product variants
317
-
{
318
-
"category": "product_name",
319
-
"name": "Red Hat Enterprise Linux CodeReady Linux Builder (v. 9)",
320
-
"product": {
321
-
"name": "Red Hat Enterprise Linux CodeReady Linux Builder (v. 9)",
322
-
"product_id": "CRB-9.7.0.Z.MAIN",
323
-
"product_identification_helper": {
324
-
"cpe": "cpe:/a:redhat:enterprise_linux:9::crb"
325
-
}
326
-
}
327
-
},
328
-
{
329
-
"category": "product_name",
330
-
"name": "Red Hat Enterprise Linux AppStream (v. 9)",
331
-
"product": {
332
-
"name": "Red Hat Enterprise Linux AppStream (v. 9)",
In additon to the product representation changes, there are a few changes to component representation.
372
315
373
316
#### Component Naming
374
317
375
-
A minor change was made to the component naming in the new beta VEX files. The `product_version.name` and `product.name` fields for components will not include any version information, even when fixed in the new beta VEX files.
318
+
A minor change was made to the component naming in the new GA VEX files. The `product_version.name` and `product.name` fields for components will not include any version information, even when fixed in the new GA VEX files. Additionally, epoch values will always be present in both the `product_id` and the `purl`.
376
319
377
320
```json
378
321
# Example of legacy VEX component naming for unfixed component
@@ -403,7 +346,7 @@ A minor change was made to the component naming in the new beta VEX files. The `
403
346
```
404
347
405
348
```json
406
-
# Example of beta VEX component naming for unfixed component
349
+
# Example of GA VEX component naming for unfixed component
407
350
{
408
351
"category": "product_version",
409
352
"name": "libxml2",
@@ -416,15 +359,15 @@ A minor change was made to the component naming in the new beta VEX files. The `
416
359
}
417
360
}
418
361
419
-
# Example of beta VEX component naming for fixed component
362
+
# Example of GA VEX component naming for fixed component
@@ -501,19 +444,19 @@ In legacy VEX files, fixed components were represented multiple times for their
501
444
502
445
#### Binary RPMs
503
446
504
-
More information on binary RPMS will be available soon. Product Security is working to address this gap as soon as possible.
447
+
Binary RPM information is primarily available for Red Hat Hardened Images. Binary RPM information will start being available for newer CVEs soon. Product Security is actively working to address this gap as quickly as possible.
505
448
506
449
## Vulnerabilities Section
507
450
508
-
Finally, there were a few changes made the the `vulnerabilties` section of the new beta VEX files.
451
+
Finally, there were a few changes made the the `vulnerabilties` section of the new GA VEX files.
509
452
510
453
### Remediations
511
454
512
-
A minor change to the `vulnerabilites.remediations` object was included in the new beta VEX files. Product and component pairs that have a 'fixed' product status will no longer be listed under a `category: workaround` remediation object. Fixed product and componets will only be listed under a `category: vendor_fix` remediation object.
455
+
A minor change to the `vulnerabilites.remediations` object was included in the new GA VEX files. Product and component pairs that have a 'fixed' product status will no longer be listed under a `category: workaround` remediation object. Fixed product and componets will only be listed under a `category: vendor_fix` remediation object.
513
456
514
457
### CVSS Score
515
458
516
-
The new beta VEX files simplify the representation of CVSS scores by eliminating the individual metrics, which are still represented in the `vectorString`.
459
+
The new GA VEX files simplify the representation of CVSS scores by eliminating the individual metrics, which are still represented in the `vectorString`.
517
460
518
461
```json
519
462
# Example of legacy VEX CVSS scores
@@ -534,7 +477,7 @@ The new beta VEX files simplify the representation of CVSS scores by eliminating
0 commit comments