Skip to content

Commit 4770ab5

Browse files
committed
More updates :)
1 parent 6278884 commit 4770ab5

1 file changed

Lines changed: 64 additions & 5 deletions

File tree

docs/vex-alpha-details.md

Lines changed: 64 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
This document is intended to cover the changes made in the new release of alpha 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.
44

55
## Document Section
6-
The new alpha VEX files include a few minor changes to the document section, outlined in the sections below.
6+
The new alpha VEX files include a few minor changes to the `document` section, outlined in the sections below.
77

88
### Document Changes
99

@@ -84,7 +84,7 @@ The `document.tracking.revision_history` has also been updated in the new alpha
8484
```
8585

8686
### Removed Document Objects
87-
The following optional objects were removed in the document section and will not be present in the new alpha VEX files:
87+
The following optional objects were removed from the `document` section and will not be present in the new alpha VEX files:
8888

8989
* `document.distribution`
9090
* `document.lang`
@@ -93,10 +93,10 @@ The following optional objects were removed in the document section and will not
9393

9494

9595
## Product Tree Section
96-
The product tree section of VEX files includes the most significant changes between legacy VEX files and the new alpha VEX files.
96+
The `product_tree` section of VEX files includes the most significant changes between legacy VEX files and the new alpha VEX files.
9797

9898
### Branch Removal
99-
In the product tree section of a VEX file, legacy VEX files use 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 alpha VEX files remove any branch nesting. All `product_name` and `product_version` objects will only be nested under the parent `vendor` branch.
99+
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 alpha VEX files remove any branch nesting. All `product_name` and `product_version` objects will only be nested under the parent `vendor` branch.
100100

101101
```json
102102
# Example of legacy VEX branch nesting
@@ -266,6 +266,7 @@ By comparing the Openshift 4.18 in legacy VEX files for [CVE-2025-12801](https:/
266266
}
267267
}
268268
```
269+
269270
In new alpha VEX files for [CVE-2025-12801](https://security.access.redhat.com/data/csaf/v2/vex-alpha/2025/cve-2025-12801.json) and [CVE-2025-6176](https://security.access.redhat.com/data/csaf/v2/vex-alpha/2025/cve-2025-6176.json), the `product_id` value remains the same between fixed and unfixed states.
270271

271272
```json
@@ -354,17 +355,75 @@ The new alpha VEX files change how multiple product variants are represented. Fo
354355

355356
```
356357

357-
358358
### Component Changes
359+
In additon to the product representation changes, there are a few changes to component representation.
359360

360361
#### Architecture Removal
362+
In legacy VEX files, fixed components were represented multiple times for their different architectures. To reduce the total number of component and relationship entries, we have decided to remove architecture representation for components in both their `name`, `product_id` and `purl`. The only exception to this is for SRPM components, which will include a ".src" in the `name` and `product_id` and "arch=src" in the `purl`.
361363

364+
```json
365+
# Example of legacy VEX component architecture
366+
{
367+
"category": "product_version",
368+
"name": "glibc-0:2.34-231.el9_7.10.aarch64",
369+
"product": {
370+
"name": "glibc-0:2.34-231.el9_7.10.aarch64",
371+
"product_id": "glibc-0:2.34-231.el9_7.10.aarch64",
372+
"product_identification_helper": {
373+
"purl": "pkg:rpm/redhat/glibc@2.34-231.el9_7.10?arch=aarch64"
374+
}
375+
}
376+
},
377+
{
378+
"category": "product_version",
379+
"name": "glibc-0:2.34-231.el9_7.10.ppc64le",
380+
"product": {
381+
"name": "glibc-0:2.34-231.el9_7.10.ppc64le",
382+
"product_id": "glibc-0:2.34-231.el9_7.10.ppc64le",
383+
"product_identification_helper": {
384+
"purl": "pkg:rpm/redhat/glibc@2.34-231.el9_7.10?arch=ppc64le"
385+
}
386+
}
387+
},
388+
{
389+
"category": "product_version",
390+
"name": "glibc-0:2.34-231.el9_7.10.x86_64",
391+
"product": {
392+
"name": "glibc-0:2.34-231.el9_7.10.x86_64",
393+
"product_id": "glibc-0:2.34-231.el9_7.10.x86_64",
394+
"product_identification_helper": {
395+
"purl": "pkg:rpm/redhat/glibc@2.34-231.el9_7.10?arch=x86_64"
396+
}
397+
}
398+
},
399+
{
400+
"category": "product_version",
401+
"name": "glibc-0:2.34-231.el9_7.10.s390x",
402+
"product": {
403+
"name": "glibc-0:2.34-231.el9_7.10.s390x",
404+
"product_id": "glibc-0:2.34-231.el9_7.10.s390x",
405+
"product_identification_helper": {
406+
"purl": "pkg:rpm/redhat/glibc@2.34-231.el9_7.10?arch=s390x"
407+
}
408+
}
409+
},
410+
411+
```
412+
413+
```json
414+
# Example of alpha VEX component architecture
415+
TO DO: Pending component version fixes
416+
417+
```
362418
#### Binary RPMs
419+
TO DO
363420

364421

365422
## Vulnerabilities Section
423+
Finally, there were a few changes made the the `vulnerabilties` section of the new alpha VEX files.
366424

367425
### Remediations
426+
A minor change to the `vulnerabilites.remediations` object was included in the new alpha 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.
368427

369428

370429
### CVSS Score

0 commit comments

Comments
 (0)