Skip to content

Commit 6bd2140

Browse files
authored
Merge pull request #1309 from tschmidtb51/purl-updates
PURL updates
2 parents 287dcaf + 61d3335 commit 6bd2140

File tree

7 files changed

+33
-22
lines changed

7 files changed

+33
-22
lines changed

csaf_2.0/known_issues.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,5 @@
3737
- The last informative comment in [test 6.2.18](https://docs.oasis-open.org/csaf/csaf/v2.0/os/csaf-v2.0-os.html#6218-product-version-range-without-vers)
3838
contains a typo, stating `vsl` instead of `vls`.
3939
See [#1265](https://github.com/oasis-tcs/csaf/issues/1265).
40+
- Confusion could occur around the depth of PURL checking in test [6.1.13](https://docs.oasis-open.org/csaf/csaf/v2.0/os/csaf-v2.0-os.html#6113-purl).
41+
See [#1303](https://github.com/oasis-tcs/csaf/issues/1303).

csaf_2.1/json_schema/csaf.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -252,17 +252,17 @@
252252
}
253253
},
254254
"purls": {
255-
"title": "List of package URLs",
256-
"description": "Contains a list of package URLs (purl).",
255+
"title": "List of PURLs",
256+
"description": "Contains a list of Package-URLs (PURL).",
257257
"type": "array",
258258
"minItems": 1,
259259
"uniqueItems": true,
260260
"items": {
261-
"title": "package URL representation",
262-
"description": "The package URL (purl) attribute refers to a method for reliably identifying and locating software packages external to this specification.",
261+
"title": "Package-URL representation",
262+
"description": "The Package-URL (PURL) attribute refers to a method for reliably identifying and locating software packages external to this specification.",
263263
"type": "string",
264264
"format": "uri",
265-
"pattern": "^pkg:[A-Za-z\\.\\-\\+][A-Za-z0-9\\.\\-\\+]*\\/.+",
265+
"pattern": "^pkg:[a-z][a-z0-9\\.\\-]*\\/.+",
266266
"minLength": 7
267267
}
268268
},

csaf_2.1/prose/edit/src/design-considerations-01-construction-principles.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ Delegation to industry best practices technologies is used in referencing schema
4141
* Default Definition: https://www.first.org/tlp/
4242
* Exploit Prediction
4343
* Exploit Prediction Scoring System (EPSS) [cite](#EPSS)
44+
* Package Data
45+
* Package-URL (PURL) [cite](#ECMA-427)
4446
* Platform Data
4547
* Common Platform Enumeration (CPE) Version 2.3 [cite](#CPE23-N)
4648
* Vulnerability Categorization

csaf_2.1/prose/edit/src/introduction-04-informative-references.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ CWE-A
5454
CYCLONEDX161
5555
: _CycloneDX Software Bill-of-Material Specification JSON schema version 1.6.1_, cyclonedx.org, November 7, 2024, https://github.com/CycloneDX/specification/blob/1.6.1/schema/bom-1.6.schema.json.
5656

57+
ECMA-427
58+
: _Package-URL (PURL) specification_, EMCA-427, 1st Edition, December 2025, <https://ecma-international.org/wp-content/uploads/ECMA-427_1st_edition_december_2025.pdf>
59+
5760
EPSS
5861
: _Exploit Prediction Scoring System (EPSS)_, FIRST.Org, Inc., https://www.first.org/epss/
5962

@@ -76,7 +79,7 @@ OPENSSL
7679
: _GTLS/SSL and crypto library_, OpenSSL Software Foundation, https://www.openssl.org/.
7780

7881
PURL
79-
: _Package URL (purl)_, GitHub Project, https://github.com/package-url/purl-spec.
82+
: _Package URL (PURL)_, GitHub Project, <https://github.com/package-url/purl-spec>.
8083

8184
RFC3552
8285
: Rescorla, E. and B. Korver, "Guidelines for Writing RFC Text on Security Considerations", BCP 72, RFC 3552, DOI 10.17487/RFC3552, July 2003, <https://www.rfc-editor.org/info/rfc3552>.

csaf_2.1/prose/edit/src/schema-elements-01-defs-03-full-product-name.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -261,9 +261,9 @@ As part of the model number, the special characters `?`, `*` and `\` MUST be esc
261261
IC25T060ATCS05-0
262262
```
263263
264-
##### Full Product Name Type - Product Identification Helper - purls
264+
##### Full Product Name Type - Product Identification Helper - PURLs
265265
266-
List of purls (`purls`) of value type `array` with `1` or more unique items contains a list of package URL (purl) identifiers.
266+
List of PURLs (`purls`) of value type `array` with `1` or more unique items contains a list of Package-URL (PURL) identifiers.
267267
268268
```
269269
"purls": {
@@ -274,22 +274,22 @@ List of purls (`purls`) of value type `array` with `1` or more unique items cont
274274
},
275275
```
276276
277-
A package URL representation has value type `string` of `7` or more characters with `pattern` (regular expression):
277+
A Package-URL representation has value type `string` of `7` or more characters with `pattern` (regular expression):
278278
279279
```
280-
^pkg:[A-Za-z\\.\\-\\+][A-Za-z0-9\\.\\-\\+]*\\/.+
280+
^pkg:[a-z][a-z0-9\\.\\-]*\\/.+
281281
```
282282
283-
> The given pattern does not completely evaluate whether a purl is valid according to the [cite](#PURL) specification.
283+
> The given pattern does not completely evaluate whether a PURL is valid according to the [cite](#ECMA-427) specification.
284284
> It provides a more generic approach and general guidance to enable forward compatibility.
285-
> CSAF uses only the canonical form of purl to conform with section 3.3 of [cite](#RFC3986).
285+
> CSAF uses only the canonical form of PURL to conform with section 3.3 of [cite](#RFC3986).
286286
> Therefore, URLs starting with `pkg://` are considered invalid.
287287
288-
The package URL (purl) attribute refers to a method for reliably identifying and locating software packages external to this specification.
289-
See [cite](#PURL) for details.
290-
Multiple purls can be specified to allow for identifiers to locate identical components in different locations.
288+
The PURL attribute refers to a method for reliably identifying and locating software packages external to this specification.
289+
See [cite](#ECMA-427) and [cite](#PURL) for details.
290+
Multiple PURLs can be specified to allow for identifiers to locate identical components in different locations.
291291
292-
If multiple purls are specified, they SHALL only differ in their qualifiers.
292+
If multiple PURLs are specified, they SHALL only differ in their qualifiers.
293293
Otherwise, separate product branches SHOULD be used to differentiate between the components.
294294
295295
##### Full Product Name Type - Product Identification Helper - SBOM URLs

csaf_2.1/prose/edit/src/tests-01-mndtr-13-purl.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1-
### purl
1+
### PURL
22

3-
It MUST be tested that all given purls are valid.
3+
It MUST be tested that all given PURLs are valid.
4+
5+
> It is not sufficient to just test against the `pattern` provided in section [sec](#full-product-name-type-product-identification-helper-purls).
6+
> The PURL must be validated against the requirements in the [cite](#ECMA-427) specification and the additional constraints given in
7+
> section [sec](#full-product-name-type-product-identification-helper-purls).
48
59
The relevant paths for this test are:
610

@@ -28,4 +32,4 @@ The relevant paths for this test are:
2832
}
2933
```
3034

31-
> Any valid purl has a name component.
35+
> Any valid PURL has a name component.

csaf_2.1/prose/edit/src/tests-01-mndtr-42-purl-qualifiers.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
### purl Qualifiers
1+
### PURL Qualifiers
22

3-
For each `product_identification_helper` object containing multiple purls it MUST be tested that the purls only differ in their qualifiers.
3+
For each `product_identification_helper` object containing multiple PURLs it MUST be tested that the PURLs only differ in their qualifiers.
44

55
The relevant paths for this test are:
66

@@ -29,4 +29,4 @@ The relevant paths for this test are:
2929
}
3030
```
3131

32-
> The two purls differ in the name component.
32+
> The two PURLs differ in the name component.

0 commit comments

Comments
 (0)