mirror of
https://github.com/goharbor/harbor.git
synced 2026-10-23 10:08:57 +03:00
The webhook SSRF guard was a single boolean. With it off (the default since #24078) webhooks can reach loopback and cloud metadata; with it on, every internal receiver breaks. HARBOR_WEBHOOK_EGRESS_POLICY (harbor.yml webhook_egress.policy) selects a level: allow_all, block_restricted (default) or public_only. Restricted covers loopback, link-local, cloud metadata, unspecified, multicast and NAT64/6to4/Teredo. HARBOR_WEBHOOK_EGRESS_ALLOWLIST takes IPs, CIDRs, hostnames and *.domain suffixes that are allowed at every level. When the policy is unset, the deprecated HARBOR_ALLOW_PRIVATE_NETWORK_ACCESS keeps its 2.15 meaning: true is allow_all, false is public_only. Invalid values fail closed, prepare rejects an unknown policy, and a blocked target is logged with the setting that reopens it. Signed-off-by: Vadim Bauer <vb@container-registry.com>