Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update wildcard pattern behavior #301

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 15 additions & 4 deletions tuf-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Title: The Update Framework Specification
Shortname: TUF
Status: LS
Abstract: A framework for securing software update systems.
Date: 2023-04-14
Date: 2024-02-23
Editor: Justin Cappos, NYU
Editor: Trishank Karthik Kuppusamy, Datadog
Editor: Joshua Lock, Verizon
Expand All @@ -16,7 +16,7 @@ Boilerplate: copyright no, conformance no
Local Boilerplate: header yes
Markup Shorthands: css no, markdown yes
Metadata Include: This version off, Abstract off
Text Macro: VERSION 1.0.33
Text Macro: VERSION 1.0.34
</pre>

Note: We strive to make the specification easy to implement, so if you come
Expand Down Expand Up @@ -1093,8 +1093,19 @@ attributes are OPTIONAL, if used, exactly one of them should be set.
`"foo-version-2.tgz"` and `"foo-version-a.tgz"`, but not
`"foo-version-alpha.tgz"`.
* a <a>PATHPATTERN</a> of `"*.tgz"` would match `"foo.tgz"` and `"bar.tgz"`,
but not `"targets/foo.tgz"`
* a <a>PATHPATTERN</a> of `"foo.tgz"` would match only `"foo.tgz"`
but not `"targets/foo.tgz"`.
* a <a>PATHPATTERN</a> of `"foo.tgz"` would match only `"foo.tgz"`.
* a <a>PATHPATTERN</a> of `"foo/*"` matches `"foo/bar.tgz"` but not
`"foo/baz/bar.tgz"`, `"foo/bar/baz/bar.tgz"`, and so on.

Note: As each <PATHPATTERN> describes the paths that a delegated role is
trusted to provide, it is important to understand the functioning of path
patterns to avoid mistaken assumptions that can lead to a false sense of
security. For example, an assumption that `"foo/*"` applies recursively to
all files in subdirectories of `foo` in a terminating delegation could allow
a subsequent delegated role that should not be trusted to sign for a target
in a subdirectory of `foo`.
Comment on lines +1104 to +1107
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a great clarification to add, thanks! This point on wildcards not applying recursively feels important enough that I wonder whether we should raise it above the examples so that it's a little more prominent, WDYT?




Prioritized delegations allow clients to resolve conflicts between delegated
Expand Down