{"items":[{"id":"NVI-00016417","kind":"vulnerability","title":"Unleash: Addon webhook URL is dialed server-side with no internal-address filtering, enabling SSRF to internal services / cloud metadata and exfiltration of configured request headers","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-5vf6-jrqr-78fj","CVE-2026-63004"],"plain_summary":"GitHub lists this reviewed advisory for unleash-server, unleash-server, unleash-server. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-6f1e9c6bab73e075b2c1aef20ff90ce9"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-08-21T19:14:47.000Z","value":"5.5 medium","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-6f1e9c6bab73e075b2c1aef20ff90ce9"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-6f1e9c6bab73e075b2c1aef20ff90ce9","url":"https://github.com/advisories/GHSA-5vf6-jrqr-78fj","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-5vf6-jrqr-78fj","publisher":"GitHub Advisory Database","observed_at":"2026-11-02T09:56:46.713Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-6f1e9c6bab73e075b2c1aef20ff90ce9"],"technology":"unleash-server","known_exclusions":[],"conditions_summary":"## Summary\n\nUnleash's addon/integration subsystem lets an operator configure a webhook (and the Slack, Microsoft Teams, Datadog, and New Relic integrations) with a target `url` parameter. Whenever a subscribed feature-flag event fires, the Unleash server itself issues an HTTP request to that configured URL. The URL is taken verbatim from the addon's `parameters.url` and passed straight to the HTTP client (`ky`) with no validation of the host: there is no allow-list, no deny-list, and no blocking of loopback, link-local, RFC1918, or cloud-metadata addresses anywhere in the addon code path. A principal able to create or update an addon can therefore point the server at an internal-only URL — for example `http://169.254.169.254/latest/meta-data/…` (cloud IMDS), `http://127.0.0.1:/…` (a service bound to localhost), or any RFC1918 host — and cause the Unleash server to dial it from inside the trust boundary.\n\nThe request is blind (the response body is not returned to the caller), but the addon records whether the request succeeded and its HTTP status into the integration-event log, giving a status/timing oracle for probing internal services. In addition, the webhook provider forwa","public_affected_ranges":["< 7.5.2"]},{"certainty":"source_listed","source_ids":["sr-6f1e9c6bab73e075b2c1aef20ff90ce9"],"technology":"unleash-server","known_exclusions":[],"conditions_summary":"## Summary\n\nUnleash's addon/integration subsystem lets an operator configure a webhook (and the Slack, Microsoft Teams, Datadog, and New Relic integrations) with a target `url` parameter. Whenever a subscribed feature-flag event fires, the Unleash server itself issues an HTTP request to that configured URL. The URL is taken verbatim from the addon's `parameters.url` and passed straight to the HTTP client (`ky`) with no validation of the host: there is no allow-list, no deny-list, and no blocking of loopback, link-local, RFC1918, or cloud-metadata addresses anywhere in the addon code path. A principal able to create or update an addon can therefore point the server at an internal-only URL — for example `http://169.254.169.254/latest/meta-data/…` (cloud IMDS), `http://127.0.0.1:/…` (a service bound to localhost), or any RFC1918 host — and cause the Unleash server to dial it from inside the trust boundary.\n\nThe request is blind (the response body is not returned to the caller), but the addon records whether the request succeeded and its HTTP status into the integration-event log, giving a status/timing oracle for probing internal services. In addition, the webhook provider forwa","public_affected_ranges":[">= 7.6.0, < 7.6.5"]},{"certainty":"source_listed","source_ids":["sr-6f1e9c6bab73e075b2c1aef20ff90ce9"],"technology":"unleash-server","known_exclusions":[],"conditions_summary":"## Summary\n\nUnleash's addon/integration subsystem lets an operator configure a webhook (and the Slack, Microsoft Teams, Datadog, and New Relic integrations) with a target `url` parameter. Whenever a subscribed feature-flag event fires, the Unleash server itself issues an HTTP request to that configured URL. The URL is taken verbatim from the addon's `parameters.url` and passed straight to the HTTP client (`ky`) with no validation of the host: there is no allow-list, no deny-list, and no blocking of loopback, link-local, RFC1918, or cloud-metadata addresses anywhere in the addon code path. A principal able to create or update an addon can therefore point the server at an internal-only URL — for example `http://169.254.169.254/latest/meta-data/…` (cloud IMDS), `http://127.0.0.1:/…` (a service bound to localhost), or any RFC1918 host — and cause the Unleash server to dial it from inside the trust boundary.\n\nThe request is blind (the response body is not returned to the caller), but the addon records whether the request succeeded and its HTTP status into the integration-event log, giving a status/timing oracle for probing internal services. In addition, the webhook provider forwa","public_affected_ranges":[">= 8.0.0, < 8.0.2"]}],"null_published_at":"2026-11-04T10:04:27.942Z","source_updated_at":"2026-08-21T19:14:47.000Z","source_disclosed_at":"2026-08-21T19:14:45.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-11-02T09:56:46.713Z"}],"next_cursor":null,"snapshot_revision":"42594"}