Summary
AzuraCast allows a station user with RemoteRelays permission to configure a Remote Relay URL using only basic URL syntax and HTTP(S) scheme validation. When background synchronization retrieves Now Playing data, the server may send repeated requests to loopback, private-network, or cloud-metadata addresses, exposing internal resources.
Affected context
The vulnerability occurs in AzuraCast deployments that support station-level Remote Relay configuration and automatically synchronize remote Now Playing data. It becomes risky when users who can manage relay settings are able to specify destinations without host, IP-range, or network-boundary restrictions, and when the application can reach sensitive internal services from its runtime environment.
Exploit preconditions
- Attack surface: Station-scoped Remote Relay configuration and the server-side HTTP client
- Required access: A user account with the station-scoped RemoteRelays permission
- Trigger point: Periodic background Now Playing synchronization
- Target condition: The configured URL resolves to a loopback, private-network, link-local, cloud-metadata, or otherwise sensitive internal address
- Why exploitation is possible: URL syntax and scheme validation do not establish that the destination is an approved external host, allowing server-side requests across internal network boundaries
Why this happens
The underlying bug is insufficient destination validation for a server-side HTTP request.
The application accepts an HTTP or HTTPS URL without applying a denylist or allowlist for resolved hosts and IP ranges, including loopback, private, link-local, and cloud-metadata destinations. When an automated server-side component follows that URL, attacker-controlled configuration becomes a request primitive, matching CWE-918: Server-Side Request Forgery.
Potential impact
- Internal services may receive unauthorized requests
- Cloud instance metadata or temporary credentials could be exposed
- Administrative endpoints may be probed or accessed from a trusted network position
- Network topology and service information could be disclosed
- Repeated background requests could increase internal service load
- Access to sensitive systems could support broader compromise
General mitigation guidance
Mitigation generally focuses on enforcing destination trust boundaries before any server-side request is made.
Common defensive patterns include:
- Prefer an explicit allowlist of approved relay hosts or domains
- Resolve destinations and reject loopback, private, link-local, multicast, reserved, and cloud-metadata address ranges
- Revalidate the destination after redirects and protect against DNS rebinding
- Use an outbound proxy or egress firewall with narrowly defined network access
- Restrict configuration permissions and treat relay URLs as untrusted input
- Apply short timeouts, response-size limits, and least-privilege runtime networking
- Avoid exposing sensitive metadata services to application workloads where possible
These controls reduce the impact of malicious or misconfigured relay destinations.
How teams detect issues like this
Detection can combine source review, runtime monitoring, and network policy enforcement:
- Use static analysis rules to identify server-side HTTP clients fed by user-controlled URLs
- Review URL validation code for scheme-only checks without host or IP-range enforcement
- Inspect code paths that follow redirects or resolve DNS repeatedly
- Monitor outbound requests to loopback, private, link-local, and metadata-service addresses
- Alert on unusual relay destinations, repeated internal connection attempts, and unexpected response patterns
- Enforce egress policies that prevent application workloads from reaching sensitive network ranges
Automated security review tools can help identify SSRF data flows, but findings should be validated against deployment-specific network controls.

