Description
The scanFeedsResolver in packages/api/src/resolvers/subscriptions/index.ts passes the caller-supplied url straight to axios.get(url, rssParserConfig()) with no address validation. The same file guards the subscribe path with validateUrl(), which rejects private and reserved ranges through the private-ip library, and createPageSaveRequest applies the same check, so the omission is specific to this resolver. An authenticated user can direct the server to request arbitrary internal endpoints. The response is parsed as a feed or as HTML and the resolver returns the resulting url, title, description and type fields, so disclosure is limited to feed-shaped metadata and to link elements advertising RSS or Atom feeds; requests that do not parse still distinguish reachable ports from unreachable ones through the resulting error.
Published: 2026-08-20
Score: 5.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

An authenticated user can trigger the server to make GET requests to any URL supplied via the scanFeeds GraphQL query, because the resolver lacks address validation. The server then parses the response as a feed or HTML and returns only URL, title, description, and type fields. This allows an attacker to probe internal network endpoints, discover services, and potentially read metadata about internal resources. No arbitrary code execution is possible, but the exposure of internal URLs and the ability to cause the server to contact internal services could be leveraged in chain attacks or for reconnaissance.

Affected Systems

The vulnerability exists in the Omnivore application provided by omnivore-app. The resolver resides in packages/api/src/resolvers/subscriptions/index.ts. Version information is not specified, so all current and future releases before a fix are potentially affected. Users should review their Omnivore deployment for the presence of scanFeeds and confirm the vulnerability exists.

Risk and Exploitability

The CVSS score of 5.3 indicates a moderate severity. The EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog, suggesting no widespread exploitation. The attack requires authentication and the ability to invoke the scanFeeds query. While the impact is limited to metadata disclosure and the ability to probe ports, an attacker could use this information to target internal services that may have other vulnerabilities. The overall risk is moderate, but active mitigation is recommended.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply any available vendor patch or update to the Omnivore application where this issue is fixed.
  • Restrict the use of the scanFeeds query to users with the minimum necessary privileges and monitor that function for unusual activity.
  • Implement server‑side URL validation that rejects private or reserved IP ranges before the request is made, mirroring the checks used in other resolvers.
  • If a patch is not yet released, temporarily disable or drop the scanFeeds resolver for non‑trusted users and monitor for probing attempts.

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

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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

Type Values Removed Values Added
Metrics ssvc

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


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 11:15:00 +0000

Type Values Removed Values Added
Description The scanFeedsResolver in packages/api/src/resolvers/subscriptions/index.ts passes the caller-supplied url straight to axios.get(url, rssParserConfig()) with no address validation. The same file guards the subscribe path with validateUrl(), which rejects private and reserved ranges through the private-ip library, and createPageSaveRequest applies the same check, so the omission is specific to this resolver. An authenticated user can direct the server to request arbitrary internal endpoints. The response is parsed as a feed or as HTML and the resolver returns the resulting url, title, description and type fields, so disclosure is limited to feed-shaped metadata and to link elements advertising RSS or Atom feeds; requests that do not parse still distinguish reachable ports from unreachable ones through the resulting error.
Title Omnivore Server-Side Request Forgery via the scanFeeds GraphQL Query
Weaknesses CWE-918
References
Metrics cvssV3_1

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

cvssV4_0

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


Subscriptions

Omnivore-app Omnivore
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-21T16:44:51.826Z

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

Link: CVE-2026-77066

cve-icon Vulnrichment

Updated: 2026-08-21T16:44:34.796Z

cve-icon NVD

Status : Received

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

Modified: 2026-08-21T17:16:46.650

Link: CVE-2026-77066

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

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

Weaknesses
  • CWE-918

    Server-Side Request Forgery (SSRF)