SSRF posture for admin-supplied URLs
Every outbound URL is checked before it is dialed, and the check is stricter in production than on a self-hosted appliance.1
Scheme and metadata check (always)
Only
http and https URLs are allowed. Cloud-metadata endpoints (169.254.169.254, metadata.google.internal,
metadata) are always blocked, in every environment.2
HTTPS and literal-address check (production)
In production the URL must be HTTPS. Literal IPs are range-checked and rejected if they are loopback, private (RFC
1918), or link-local, including IPv6 loopback, unique-local, link-local, and IPv4-mapped IPv6 forms.
localhost and
any .localhost host are blocked.3
DNS resolution check (production)
For a hostname (not a literal IP), Passport resolves it and rejects the request if any resolved address falls in
those private, loopback, link-local, or metadata ranges. This closes the DNS-rebinding and internal-hostname holes a
string check cannot see.
4
Redirect re-validation (production)
Redirects are followed manually rather than automatically. Every hop is re-checked with the same rules, the chain is
capped at five hops, and the Authorization header is dropped on a cross-origin hop so a redirect cannot exfiltrate a
bearer token to another host.
On a self-hosted appliance (any non-production run), Passport trusts the operator’s own network, so loopback and
private addresses are allowed. The metadata-endpoint block still applies everywhere.
Bridge and CLI egress
The Passport bridge and Passport CLI talk to your own Passport server and nothing else. All of their API calls go to your workspace’s Passport server. Upstream credentials are brokered server-side and never written into an agent config.Links the CLI opens for you, such as the sign-in page, open in your system browser as ordinary navigations. They are
not CLI network calls.