Skip to content

trident-acl-agent: require https for Nebraska server and package URLs - #775

Open
bfjelds (bfjelds) wants to merge 1 commit into
mainfrom
user/bfjelds/acl-agent-https-core
Open

trident-acl-agent: require https for Nebraska server and package URLs#775
bfjelds (bfjelds) wants to merge 1 commit into
mainfrom
user/bfjelds/acl-agent-https-core

Conversation

@bfjelds

@bfjelds bfjelds (bfjelds) commented Sep 3, 2026

Copy link
Copy Markdown
Member

Nebraska's response drives a root-privileged tridentd fetch, so both URLs it supplies must be transport-secured:

  • server (the update-request annotation's Nebraska endpoint) must now be https - a plain-http (or any other scheme) value is rejected with InvalidRequest, closing off a network-position attacker reading or tampering with the update-check/event-report channel.
  • The package/image URL Nebraska's response resolves to is only accepted if it is https or oci; http and file are rejected, closing an SSRF vector where a compromised/spoofed Nebraska response could otherwise direct tridentd to fetch or open an arbitrary local file or unencrypted network resource.

trident-acl-agent has no CA-override configuration of its own: a private CA is expected to be trusted via the node's system trust store, installed at image-build time, not via a runtime agent config knob.

Updates docs/Explanation/Trident-ACL-Agent.md accordingly.

Validated with pr-e2e with commit targeting pr 731

Nebraska's response drives a root-privileged tridentd fetch, so both
URLs it supplies must be transport-secured:

- `server` (the update-request annotation's Nebraska endpoint) must now
  be `https` - a plain-`http` (or any other scheme) value is rejected
  with InvalidRequest, closing off a network-position attacker reading
  or tampering with the update-check/event-report channel.
- The package/image URL Nebraska's response resolves to is only
  accepted if it is `https` or `oci`; `http` and `file` are rejected,
  closing an SSRF vector where a compromised/spoofed Nebraska response
  could otherwise direct tridentd to fetch or open an arbitrary local
  file or unencrypted network resource.

trident-acl-agent has no CA-override configuration of its own: a
private CA is expected to be trusted via the node's system trust
store, installed at image-build time, not via a runtime agent config
knob.

Updates docs/Explanation/Trident-ACL-Agent.md accordingly.
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
There may be pipelines that require an authorized user to comment /azp run to run.

@bfjelds
bfjelds (bfjelds) marked this pull request as ready for review September 3, 2026 23:25
@bfjelds
bfjelds (bfjelds) requested a review from a team as a code owner September 3, 2026 23:25
Copilot AI lite review requested due to automatic review settings September 3, 2026 23:25
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

The security restrictions are correctly enforced at validation points, are covered by targeted unit tests, and the docs match the implemented behavior.

Pull request overview

This PR hardens trident-acl-agent’s update plumbing by enforcing transport-secure Nebraska endpoints and preventing Nebraska-driven artifact URL schemes that could enable SSRF or local-file access when forwarded to root-privileged tridentd.

Changes:

  • Require https (and only https) for the Nebraska server URL in stage/finalize update requests, returning InvalidRequest otherwise.
  • Restrict resolved package/artifact URLs from Nebraska offers to schemes https or oci, rejecting http/file (and anything else).
  • Update docs and add/adjust unit tests to reflect and validate the new constraints.
File summaries
File Description
docs/Explanation/Trident-ACL-Agent.md Documents https-only Nebraska server requirement and https/oci artifact URL scheme restriction.
crates/trident-acl-agent/src/core/nebraska/client.rs Enforces an allowlist for resolved package URL schemes (https, oci) and adds tests for allowed/blocked schemes.
crates/trident-acl-agent/src/annotations/protocol.rs Tightens request validation to require https for server on stage/finalize and updates tests accordingly.
Review details
  • Files reviewed: 3/3 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

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.

2 participants