Description
The setWebhookResolver in packages/api/src/resolvers/webhooks/index.ts stores the caller-supplied url without any address validation, and the file imports no validation helper. When a subscribed event fires, callWebhook in packages/api/src/jobs/call_webhook.ts issues axios.request with that url, the method and Content-Type recorded on the webhook, and a JSON body carrying the event data, so an authenticated user can make the server send repeated attacker-shaped requests to internal endpoints, including link-local metadata addresses. The request is blind: callWebhook discards the result and writes only a success line or the axios error to the server log, so the response is not returned through the API.
Published: 2026-08-20
Score: 5.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability arises from the setWebhookResolver, which accepts a user‑supplied URL and stores it without any address validation. This type of vulnerability is classified as a Server‑Side Request Forgery, identified as CWE‑918. When a subscribed event fires, the server executes a blind outbound request to that stored URL, using the configured HTTP method and content type, and sends event data in a JSON body. This behavior allows an authenticated user to instruct the server to make arbitrary requests to internal or external endpoints. Based on the description, this could expose internal services or leak data. The lack of response handling means the caller cannot verify the outcome, mitigating detection but not preventing exploitation.

Affected Systems

The impacted product is the Omnivore App API, specifically the code paths handling webhook configuration and event triggering within the Omnivore repository. Version information is not provided in the advisory, so all current deployments that have not applied a future fix remain susceptible.

Risk and Exploitability

The CVSS score of 5.3 places this in the medium severity range. The EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog. Because the attack requires an authenticated user to set a webhook, the threat is limited to users with legitimate access to the system; however, once set, the server can be coerced into accessing internal resources, which could expose internal services or leak data. Based on the description, it is inferred that the attacker might use this SSRF path to reach internal endpoints that could provide a conduit for lateral movement. No known exploits have been reported, but the blind nature of the request and lack of input validation make this a significant SSRF risk for environments with sensitive internal endpoints.

Generated by OpenCVE AI on August 20, 2026 at 22:49 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Check for a newer Omnivore release that implements URL validation on the setWebhook endpoint and upgrade when available.
  • Implement server‑side validation to restrict webhook URLs to a safe list of domains or IP ranges, excluding internal and localhost addresses.
  • Configure network outbound controls (firewall or proxy rules) to block the application’s ability to reach internal network segments or privileged addresses when making webhook calls.

Generated by OpenCVE AI on August 20, 2026 at 22:49 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 21 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
First Time appeared Omnivore-app
Omnivore-app omnivore
Vendors & Products Omnivore-app
Omnivore-app omnivore

Thu, 20 Aug 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 20 Aug 2026 11:15:00 +0000

Type Values Removed Values Added
Description The setWebhookResolver in packages/api/src/resolvers/webhooks/index.ts stores the caller-supplied url without any address validation, and the file imports no validation helper. When a subscribed event fires, callWebhook in packages/api/src/jobs/call_webhook.ts issues axios.request with that url, the method and Content-Type recorded on the webhook, and a JSON body carrying the event data, so an authenticated user can make the server send repeated attacker-shaped requests to internal endpoints, including link-local metadata addresses. The request is blind: callWebhook discards the result and writes only a success line or the axios error to the server log, so the response is not returned through the API.
Title Omnivore Stored Server-Side Request Forgery via the setWebhook Mutation
Weaknesses CWE-918
References
Metrics cvssV3_1

{'score': 5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:N'}

cvssV4_0

{'score': 5.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N'}


Subscriptions

Omnivore-app Omnivore
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-20T14:48:13.117Z

Reserved: 2026-08-20T10:50:24.777Z

Link: CVE-2026-77067

cve-icon Vulnrichment

Updated: 2026-08-20T14:47:48.715Z

cve-icon NVD

Status : Received

Published: 2026-08-20T11:16:22.240

Modified: 2026-08-20T15:18:41.393

Link: CVE-2026-77067

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-21T12:10:10Z

Weaknesses
  • CWE-918

    Server-Side Request Forgery (SSRF)