docs(security): add governance_agents[].url to the SSRF URL-field enumeration#5718
Merged
Conversation
…tion (#5715) The seller's outbound check_governance call targets the buyer-supplied accounts[].governance_agents[].url, making it a counterparty-supplied-URL SSRF vector on par with the webhook/notification URLs already enumerated. Add it to the Webhook URL validation (SSRF) list in security.mdx so the same checklist (HTTPS-only, reserved-range rejection, connection pinning, no redirects, body/timeout caps) applies. Closes #5715 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
Contributor
There was a problem hiding this comment.
Correct gap-closer. A counterparty-supplied URL the seller fetches belongs in the SSRF enumeration, full stop — the prose already claimed to cover "governance agent" URLs but the explicit list didn't carry the field.
Things I checked
- Field path is real and exact.
accounts[].governance_agents[].urlexists instatic/schemas/source/core/account.json:106-114—format: uri,required,additionalProperties: false, registered viasync_governance. The doc string matches the schema path character-for-character. - The egress is real.
check_governanceis a defined governance task (static/schemas/source/governance/check-governance-request.json). The seller persists the buyer-supplied agent URL and calls out to it before committing a media buy — textbook counterparty-supplied-URL SSRF, on par withpush_notification_config.urland thenotification_configs[].urlalready listed atsecurity.mdx:100. - The parenthetical does load-bearing work: "(the seller fetches this when it calls
check_governance)" names who fetches and when, which is the distinction that makes it an SSRF vector rather than just another URL field. Right shape. - Changeset correctly omitted —
docs/building/**is not a protocol release surface per the changeset policy, and the wire shape is unchanged.
No follow-ups, no nits. One line, correct, and it tightens a security checklist that was already framed to include this.
LGTM.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #5715.
What
Adds
accounts[].governance_agents[].urlto the SSRF URL-field enumeration indocs/building/by-layer/L1/security.mdx.Why
When a buyer registers a governance agent via
sync_governance, the seller persistsgovernance_agents[].urland calls out to it (check_governance) before committing a media buy. That is a counterparty-supplied URL the seller fetches — a textbook SSRF vector — on par with the webhook/notification URLs already listed.The enumeration already framed the rule as covering URLs that "a buyer, seller, or governance agent provides," but the explicit list omitted the governance-agent URL itself. The URL otherwise appeared in
security.mdxonly within the JWS profile (which SSRF-controlsjwks_uriand the revocation-list URL), never as thecheck_governancetarget.Listing it routes the seller's outbound
check_governancefetch through the existing Webhook URL validation checklist (HTTPS-only, reserved-range rejection, connection pinning, no redirects, body/timeout caps).Notes
docs/building/, not a protocol release surface per the changeset policy).universal/governance.yamlcross-cutting normative obligation #3086 inherits and widens it, so closing the doc gap now is prudent.🤖 Generated with Claude Code