Skip to content

Conversation

@1seal
Copy link

@1seal 1seal commented Jan 25, 2026

Description of the changes being introduced by the pull request:

This PR makes the trust anchor choice explicit in tuf.ngclient.Updater().

  • bootstrap is now a required keyword-only argument (no default)
  • Callers must choose:
    • bootstrap=<root_bytes> (recommended: embedded/deployed trusted root)
    • bootstrap=None (explicit opt-in to using cached metadata_dir/root.json as the trust anchor)
  • The fallback now triggers only on bootstrap is None (not on falsy bytes)
  • Tests and examples are updated to pass bootstrap explicitly
  • Adds documentation guidance on secure bootstrap root storage

Migration:

  • Old implicit behavior: Updater(...)
  • Preserve old behavior explicitly: Updater(..., bootstrap=None)
  • Recommended: Updater(..., bootstrap=)

Tests:

  • python -m pytest -c pyproject.toml -q

Ref: GHSA-9pfj-pjv5-22gj

make bootstrap required and explicit: callers must pass bootstrap=<root_bytes> or bootstrap=None.

also tighten docs, examples, and tests to reflect the explicit trust anchor choice.

Signed-off-by: 1seal <security@1seal.org>
@1seal 1seal requested a review from a team as a code owner January 25, 2026 12:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant