/

CVE-2026-100849

Severity:

HIGH RISK

(7.1)

Server-Side Request Forgery (CWE-918) in AzuraCast Webhooks

CVE-2026-100849

Deferred

Vulnerability type

Category:

Server-Side Request Forgery

CWE:

CWE-918

Impact:

Unauthorized Server-Side Network Requests and Data Disclosure

Severity:

HIGH RISK

(7.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

AzuraCast webhook URL validation can allow a station-scoped user to configure Generic or Discord webhooks that target loopback, private-network, or other internal addresses. When the webhook is tested or triggered, the server may send station Now Playing data to the selected destination, creating a server-side request forgery risk.

Affected context

The issue occurs in AzuraCast deployments where users with the station-scoped WebHooks permission can create or modify Generic or Discord webhook connectors. The validation logic blocks only literal link-local IP addresses, while loopback and RFC1918 private ranges remain usable; hostnames that cause IP parsing to fail may also bypass the intended check. The webhook test endpoint provides an on-demand trigger for the outbound request.

Exploit preconditions

  • Attack surface: Station webhook configuration and the webhook test endpoint
  • Required access: A user account with station-scoped WebHooks permission
  • Trigger point: Webhook delivery or an explicit request to the station webhook test endpoint
  • Target condition: The configured URL resolves to a loopback, private-network, internal, or otherwise reachable server-side destination
  • Why exploitation is possible: URL validation does not comprehensively restrict internal destinations and may skip filtering when hostname parsing fails

Why this happens

The vulnerability results from incomplete server-side URL validation. The implementation evaluates only a narrow set of literal link-local addresses, does not consistently reject loopback or private-network destinations, and treats address-parsing failures as a reason to bypass the restriction. This maps to CWE-918: Server-Side Request Forgery, where attacker-influenced URLs cause a trusted server to make requests to destinations the attacker could not directly access.

Potential impact

  • An attacker may cause requests to internal services from the AzuraCast server
  • Internal endpoints may receive station Now Playing data
  • Cloud or infrastructure metadata could potentially be exposed if reachable
  • Network boundaries and access controls may be bypassed through the server's connectivity
  • Internal services could be probed or affected by unexpected HTTP requests

General mitigation guidance

Mitigation typically focuses on enforcing a complete outbound-request policy rather than relying on a narrow denylist.

Common defensive patterns include:

  • Resolve configured destinations and reject loopback, link-local, private, reserved, multicast, and otherwise non-public address ranges
  • Validate the final destination after DNS resolution and again when following redirects
  • Prefer an allowlist of approved webhook hosts or egress destinations
  • Restrict outbound network access from the application to only required services
  • Revalidate URLs at request time to account for DNS changes and rebinding behavior
  • Minimize the data included in webhook payloads and apply least-privilege service networking
  • Treat hostname parsing failures and ambiguous address formats as validation failures rather than bypass conditions

How teams detect issues like this

Organizations can detect SSRF exposure through:

  • Static analysis checks for user-controlled URLs passed to HTTP clients
  • Code review of hostname parsing, DNS resolution, redirect handling, and IP-range filtering
  • Tests covering loopback, private, link-local, IPv6, encoded, mixed-format, and DNS-rebinding destinations
  • Egress firewall, proxy, and service-mesh policies that alert on application traffic to restricted networks
  • Monitoring webhook destinations and outbound requests for unexpected internal address ranges
  • Policy enforcement requiring approved webhook domains and explicit outbound network permissions

Automated security review tools may help identify URL-fetching code, but runtime network controls remain important.

Sources

SourceLink
github.comgithub.com/AzuraCast/AzuraCast/security/advisories/GHSA-3jp3-3wqw-jvw4
vulncheck.comvulncheck.com/advisories/azuracast-before-0.23.8-ssrf-filter-bypass-via-hostname-and-private-ips

Frequently asked

questions

Exploitation generally requires a valid AzuraCast account with station-scoped WebHooks permission, rather than unrestricted anonymous access.

Yes. The station webhook test functionality can allow an authorized low-privileged user to initiate the outbound request, subject to deployment behavior and access controls.

Enforce a default-deny outbound request policy, validate resolved destinations against comprehensive restricted ranges, handle parsing failures as errors, and restrict webhook targets to approved hosts where practical.

Combine strict URL validation with DNS- and redirect-aware checks, application egress controls, least-privilege networking, security-focused tests, and monitoring for unexpected internal destinations.

Find out what's already
exploitable in your codebase.