镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Define and enforce webhook destination policy for hosted and self-hosted deployments #2666

Open

Description

@niemyjski

Webhook delivery currently has no public-address restriction. During review of #2628, Eric called out that user-selected destinations and redirects can reach internal services. #2628 deliberately leaves destination policy unchanged and removes the acceptance test that would have made private, loopback, metadata, and credential URLs a supported contract.

Decide the hosted default and an explicit self-hosted opt-out before implementing restrictions. Evaluate reusing the connect-time PublicAddressPolicy introduced for source maps in #2625, while accounting for webhook redirects, DNS changes, and configured proxies.

Acceptance criteria:

  • Define allowed schemes, address ranges, credential-bearing URLs, redirect handling, and the self-hosted configuration contract.
  • Enforce the selected policy at connection time and on redirect destinations; URL validation alone must not be treated as protection against DNS changes.
  • Cover public destinations, loopback/private/link-local addresses, IPv4/IPv6, DNS changes, redirects, and proxy behavior using controlled local fixtures without contacting real internal or metadata services.
  • Define behavior for existing hooks that become disallowed, including actionable sanitized diagnostics and whether they are disabled or rejected without delivery.
  • Document compatibility and rollout requirements for hosted and self-hosted installations; preserve legitimate private integrations only under the explicitly chosen configuration.

This is separate from #2628's delivery cleanup and telemetry changes. The remaining destination-policy limitation is not fixed by that PR.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions