Skip to content

Commit 4496a5e

Browse files
authored
Merge pull request #2 from openvex/example
Add real world example
2 parents 67249d4 + ffc85db commit 4496a5e

File tree

1 file changed

+38
-1
lines changed

1 file changed

+38
-1
lines changed

OPENVEX-SPEC.md

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ The following table lists the fields of the OpenVEX statement struct.
206206

207207
| Field | Required | Description |
208208
| --- | --- | --- |
209-
| vulnerability | ✓ | vulnerability SHOULD use existing and well known identifiers. For example: CVE, the Global Security Database (GSD), or a suppliers vulnerability tracking system. It is expected that vulnerability identification systems are external to and maintained separately from VEX.<br>vulnerability MAY be URIs or URLs.<br>vulnerability MAY be arbitrary and MAY be created by the VEX statement `author`.
209+
| vulnerability | ✓ | vulnerability SHOULD use existing and well known identifiers. For example: [CVE](https://cve.mitre.org/), [OSV](https://osv.dev/), (GHSA)[https://github.com/advisories], a supplier's vulnerability tracking system such as [RHSA](https://access.redhat.com/security/security-updates/#/) or a propietary system. It is expected that vulnerability identification systems are external to and maintained separately from VEX.<br>vulnerability MAY be URIs or URLs.<br>vulnerability MAY be arbitrary and MAY be created by the VEX statement `author`.
210210
| vuln_description || Optional free-form text describing the vulnerability |
211211
| timestamp || Timestamp is the time at which the information expressed in the Statement was known to be true. Cascades down from the document, see [Inheritance](#Inheritance). |
212212
| products || Product identifiers that the statement applies to. Any software identifier can be used and SHOULD be traceable to a described item in an SBOM. The use of [Package URLs](https://github.com/package-url/purl-spec) (purls) is recommended. While a product identifier is required to have a complete statement, this field is optional as it can cascade down from the encapsulating document, see [Inheritance](#Inheritance). |
@@ -444,7 +444,43 @@ hosting or redirection of IRIs.
444444
For more information check the OpenVEX [JSON-LD](JSON-LD.md) document and the
445445
W3C's [JSON-LD reommendation](https://www.w3.org/TR/json-ld11/).
446446

447+
## Example
447448

449+
To illustrate how OpenVEX can specify a document switching off a false positive,
450+
let's look at an example. According to the
451+
[Spring Blog](https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot),
452+
the included log4j library in Spring Boot 2.6.0 is within the versions affected by
453+
the [log4shell vulnerability](https://nvd.nist.gov/vuln/detail/CVE-2021-44228).
454+
In the post, however the project maintainers explain that it is not exploitable
455+
as shipped and they provide some details and guidance to users.
456+
457+
To capture Spring's advise in an OpenVEX document and fend off any false positives,
458+
the project could issue an OpenVEX document as follows:
459+
460+
```json
461+
{
462+
"@context": "https://openvex.dev/ns",
463+
"@id": "https://openvex.dev/docs/public/vex-2e67563e128250cbcb3e98930df948dd053e43271d70dc50cfa22d57e03fe96f",
464+
"author": "Spring Builds <[email protected]>",
465+
"role": "Project Release Bot",
466+
"timestamp": "2023-01-16T19:07:16.853479631-06:00",
467+
"version": "1",
468+
"statements": [
469+
{
470+
"vulnerability": "CVE-2021-44228",
471+
"products": [
472+
"pkg:maven/org.springframework.boot/[email protected]"
473+
],
474+
"status": "not_affected",
475+
"justification": "vulnerable_code_not_in_execute_path"
476+
"impact_statement": "Spring Boot users are only affected by this vulnerability if they have switched the default logging system to Log4J2. The log4j-to-slf4j and log4j-api jars that we include in spring-boot-starter-logging cannot be exploited on their own. Only applications using log4j-core and including user input in log messages are vulnerable.",
477+
}
478+
]
479+
}
480+
```
481+
482+
VEX-enabled security scanners could use the vex document to turn off the security
483+
alert and dashboards could present users with the official guidance from the project.
448484

449485
## Revisions
450486

@@ -453,6 +489,7 @@ W3C's [JSON-LD reommendation](https://www.w3.org/TR/json-ld11/).
453489
| 2023-01-08 | First Draft of the OpenVEX Specification |
454490
| 2023-01-16 | Updated specx draft to reflect initial review |
455491
| 2023-01-16 | Added JSON-LD and namespace section |
492+
| 2023-01-16 | Add example section |
456493

457494

458495
## Sources

0 commit comments

Comments
 (0)