Libredesk lets admins configure URLs that the server fetches on their behalf. This guard blocks those outbound requests from reaching private, loopback, link-local and cloud-metadata IP ranges.
It covers every admin-configured outbound URL:
- Webhooks - event delivery endpoints
- SSO - OIDC provider discovery
- AI - the AI provider base URL and custom AI tool calls
It is off by default
In a self-hosted, single-tenant deployment the admin already controls the infrastructure and sets these URLs, so reaching internal hosts is not a privilege boundary. Common setups depend on it: an internal webhook receiver, an OIDC provider on a private network, or a local model endpoint such as Ollama on localhost. Turning the guard on by default would break those.
Turning it on
Turn it on when the outbound URLs come from parties you do not fully trust, such as a multi-tenant or hosted deployment. Configure it in config.toml.
[ssrf]
# Block outbound requests to private/loopback/link-local/cloud-metadata IPs.
enabled = true
# CIDR ranges allowed to bypass the guard when enabled.
allowed_cidrs = ["10.0.0.0/8", "192.168.1.10/32"]
Use allowed_cidrs to carve out known internal hosts you still need to reach while the guard is on.