|
3 | 3 | 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. |
4 | 4 |
|
5 | 5 | ## Document Section |
| 6 | +The new alpha VEX files include a few minor changes to the document section, outlined in the sections below. |
6 | 7 |
|
7 | 8 | ### Document Changes |
8 | 9 |
|
@@ -92,6 +93,7 @@ The following optional objects were removed in the document section and will not |
92 | 93 |
|
93 | 94 |
|
94 | 95 | ## 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. |
95 | 97 |
|
96 | 98 | ### Branch Removal |
97 | 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. |
@@ -233,26 +235,138 @@ The [alpha VEX file](https://security.access.redhat.com/data/csaf/v2/vex-alpha/2 |
233 | 235 | ``` |
234 | 236 |
|
235 | 237 | #### Product Naming |
| 238 | +Previously, legacy VEX files used different naming schemas based on the fix status of the product. The new alpha VEX files has standardized on a naming schema to improve consistency of a product's representation throughout the entire lifecycle of a VEX file. |
| 239 | + |
| 240 | +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. |
236 | 241 |
|
237 | 242 | ```json |
238 | | -# Example of legacy VEX |
| 243 | +# Example of legacy VEX unfixed product name for CVE-2025-12801 |
| 244 | +{ |
| 245 | + "category": "product_name", |
| 246 | + "name": "Red Hat OpenShift Container Platform 4", |
| 247 | + "product": { |
| 248 | + "name": "Red Hat OpenShift Container Platform 4", |
| 249 | + "product_id": "red_hat_openshift_container_platform_4", |
| 250 | + "product_identification_helper": { |
| 251 | + "cpe": "cpe:/a:redhat:openshift:4" |
| 252 | + } |
| 253 | + } |
| 254 | +} |
| 255 | + |
| 256 | +# Example of legacy VEX fixed product name for CVE-2025-6176 |
| 257 | +{ |
| 258 | + "category": "product_name", |
| 259 | + "name": "Red Hat OpenShift Container Platform 4.18", |
| 260 | + "product": { |
| 261 | + "name": "Red Hat OpenShift Container Platform 4.18", |
| 262 | + "product_id": "9Base-RHOSE-4.18", |
| 263 | + "product_identification_helper": { |
| 264 | + "cpe": "cpe:/a:redhat:openshift:4.18::el9" |
| 265 | + } |
| 266 | + } |
| 267 | +} |
239 | 268 | ``` |
| 269 | +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. |
240 | 270 |
|
241 | 271 | ```json |
242 | | -# Example of alpha VEX |
| 272 | +# Example of alpha VEX unfixed product name for CVE-2025-12801 |
| 273 | +{ |
| 274 | + "category": "product_name", |
| 275 | + "name": "OpenShift Container Platform 4.18", |
| 276 | + "product": { |
| 277 | + "name": "OpenShift Container Platform 4.18", |
| 278 | + "product_id": "openshift-4.18", |
| 279 | + "product_identification_helper": { |
| 280 | + "cpe": "cpe:/a:redhat:openshift:4.18" |
| 281 | + } |
| 282 | + } |
| 283 | +} |
| 284 | + |
| 285 | +# Example of alpha VEX fixed product name for CVE-2025-6176 |
| 286 | +{ |
| 287 | + "category": "product_name", |
| 288 | + "name": "OpenShift Container Platform 4.18", |
| 289 | + "product": { |
| 290 | + "name": "OpenShift Container Platform 4.18", |
| 291 | + "product_id": "openshift-4.18", |
| 292 | + "product_identification_helper": { |
| 293 | + "cpe": "cpe:/a:redhat:openshift:4.18" |
| 294 | + } |
| 295 | + } |
| 296 | +}, |
| 297 | + |
243 | 298 | ``` |
244 | 299 |
|
245 | 300 | #### Product Variants |
| 301 | +The new alpha 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'. |
| 302 | + |
| 303 | +```json |
| 304 | +# Example of legacy VEX product variants |
| 305 | +{ |
| 306 | + "category": "product_name", |
| 307 | + "name": "Red Hat Enterprise Linux CodeReady Linux Builder (v. 9)", |
| 308 | + "product": { |
| 309 | + "name": "Red Hat Enterprise Linux CodeReady Linux Builder (v. 9)", |
| 310 | + "product_id": "CRB-9.7.0.Z.MAIN", |
| 311 | + "product_identification_helper": { |
| 312 | + "cpe": "cpe:/a:redhat:enterprise_linux:9::crb" |
| 313 | + } |
| 314 | + } |
| 315 | +}, |
| 316 | +{ |
| 317 | + "category": "product_name", |
| 318 | + "name": "Red Hat Enterprise Linux AppStream (v. 9)", |
| 319 | + "product": { |
| 320 | + "name": "Red Hat Enterprise Linux AppStream (v. 9)", |
| 321 | + "product_id": "AppStream-9.7.0.Z.MAIN", |
| 322 | + "product_identification_helper": { |
| 323 | + "cpe": "cpe:/a:redhat:enterprise_linux:9::appstream" |
| 324 | + } |
| 325 | + } |
| 326 | +}, |
| 327 | +{ |
| 328 | + "category": "product_name", |
| 329 | + "name": "Red Hat Enterprise Linux BaseOS (v. 9)", |
| 330 | + "product": { |
| 331 | + "name": "Red Hat Enterprise Linux BaseOS (v. 9)", |
| 332 | + "product_id": "BaseOS-9.7.0.Z.MAIN", |
| 333 | + "product_identification_helper": { |
| 334 | + "cpe": "cpe:/o:redhat:enterprise_linux:9::baseos" |
| 335 | + } |
| 336 | + } |
| 337 | +}, |
| 338 | + |
| 339 | +``` |
| 340 | + |
| 341 | +```json |
| 342 | +# Example of alpha VEX product variants |
| 343 | +{ |
| 344 | + "category": "product_name", |
| 345 | + "name": "Red Hat Enterprise Linux 9.7.z", |
| 346 | + "product": { |
| 347 | + "name": "Red Hat Enterprise Linux 9.7.z", |
| 348 | + "product_id": "rhel-9.7.z::appstream", |
| 349 | + "product_identification_helper": { |
| 350 | + "cpe": "cpe:/a:redhat:enterprise_linux:9::appstream" |
| 351 | + } |
| 352 | + } |
| 353 | +}, |
| 354 | + |
| 355 | +``` |
| 356 | + |
246 | 357 |
|
247 | 358 | ### Component Changes |
248 | 359 |
|
249 | 360 | #### Architecture Removal |
250 | 361 |
|
251 | | -## Vulnerabilities Section |
| 362 | +#### Binary RPMs |
| 363 | + |
252 | 364 |
|
| 365 | +## Vulnerabilities Section |
253 | 366 |
|
254 | 367 | ### Remediations |
255 | 368 |
|
| 369 | + |
256 | 370 | ### CVSS Score |
257 | 371 | The new alpha VEX files simplify the representation of CVSS scores by eliminating the individual metrics, which are still represented in the `vectorString`. |
258 | 372 |
|
|
0 commit comments