Skip to content

Commit 3c80750

Browse files
feat: Add support for OmniBOR Artifact IDs
Signed-off-by: Andrew Lilley Brinker <[email protected]>
1 parent f5dae04 commit 3c80750

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

schema/CVE_Record_Format.json

+30-1
Original file line numberDiff line numberDiff line change
@@ -539,17 +539,46 @@
539539
"items": {
540540
"$ref": "#/definitions/cpe_match"
541541
}
542+
},
543+
"omniborMatch": {
544+
"type": "array",
545+
"items": {
546+
"$ref": "#/definitions/omnibor_match"
547+
}
542548
}
543549
},
544550
"allOf": [
545551
{ "required": ["operator"] },
546552
{
547553
"anyOf": [
548-
{ "required": ["cpeMatch"] }
554+
{ "required": ["cpeMatch"] },
555+
{ "required": ["omniborMatch"] }
549556
]
550557
}
551558
]
552559
},
560+
"omnibor_match": {
561+
"description": "OmniBOR match string",
562+
"type": "object",
563+
"properties": {
564+
"vulnerable": {
565+
"type": "boolean",
566+
"description": "Indicates whether the Artifact ID is being used to specify a vulnerable or not-vulnerable artifact."
567+
},
568+
"artifactId": {
569+
"type": "string",
570+
"pattern": "^gitoid:blob:sha256:[0-9a-f]{64}$",
571+
"description": "The Artifact ID of the artifact to be matched against."
572+
},
573+
"target": {
574+
"type": "string",
575+
"enum": ["artifact", "build_input"],
576+
"description": "Specifies how consumers of the Artifact ID should search for matches. If the 'target' is 'artifact', then the Artifact ID is identifying an artifact which should be searched for directly (for example, within a file system by matching against Artifact IDs for files). If the 'target' is 'build_input' then the Artifact ID is identifying a build input, and consumers should match the Artifact ID against IDs found in OmniBOR Input Manifests for their software."
577+
}
578+
},
579+
"required": ["vulnerable", "artifactId", "target"],
580+
"additionalProperties": false
581+
},
553582
"cpeApplicabilityElement": {
554583
"description": "Affected products defined using an implementation of the CPE Applicability Language, mostly copied/forked from the NIST NVD CVE API v2.0 schema (optional). An operator property allows AND or OR logic between CPEs or combinations of CPEs. The negate and vulnerable Boolean properties allow CPEs to be inverted and/or defined as vulnerable or not. Multiple version fields are provided for capturing ranges of products when defining a CPE Match String Range. NOTE: When defining a cpeApplicability block, it is recommended that it align with (as much as possible) the product data provided within the affected block.",
555584
"properties": {

0 commit comments

Comments
 (0)