Skip to main content

Omnivore CVE-2026-77066

| EUVDEUVD-2026-63255 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-08-20 VulnCheck GHSA-w9wc-vx4j-8xwg
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to Omnivore instance
  2. Delivery
    Submit scanFeeds GraphQL mutation with internal target URL
  3. Exploit
    Server issues unvalidated axios request to internal endpoint
  4. Execution
    Parse response for feed metadata or link elements
  5. Persist
    Infer port reachability from error differentiation
  6. Impact
    Enumerate internal network topology

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

A valid authenticated Omnivore session is required (CVSS PR:L confirmed) - unauthenticated actors cannot reach the scanFeedsResolver endpoint. The attacker must be able to submit a scanFeeds GraphQL mutation to the Omnivore API. No special server configuration is needed; the vulnerability exists in the default deployment of the API package. Exploitation is limited by the response parser: only feed-shaped metadata fields (url, title, description, type) and advertised RSS/Atom link elements from the fetched response are returned - raw HTTP response bodies are not exposed. However, port reachability can still be inferred through error differentiation even when content is not parseable as a feed. The Omnivore server must have outbound network access to the targeted internal addresses for exploitation to succeed; network egress filtering to RFC-1918 and link-local ranges blocks the attack independently of the application-layer fix.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N) yields a score of 5.3, placing this in the medium band. The PR:L metric is the primary mitigating factor: exploitation is gated behind a valid authenticated session, excluding unauthenticated actors. Impact is intentionally bounded by the response parser - only feed-shaped metadata and link elements are surfaced, not raw HTTP response bodies - which distinguishes this from full-response SSRF variants that can exfiltrate arbitrary secrets. The SC:L rating reflects that subsequent internal systems can have their metadata partially exposed. No EPSS data was provided, the vulnerability is not listed in CISA KEV, and no public exploit code has been identified, all of which suggest this has not been broadly weaponized. Practical risk scales with deployment context: an Omnivore instance whose API server has outbound access to cloud metadata services (e.g., AWS IMDSv1 at 169.254.169.254) or internal APIs faces meaningful lateral-movement exposure even with limited response fidelity, because port reachability inference alone can map internal topology. Organizations without network-level egress controls between the Omnivore server and sensitive internal resources should treat the patch as a priority.

Exploit ScenarioDerived

An authenticated Omnivore user submits a scanFeeds GraphQL mutation supplying an internal URL such as http://169.254.169.254/latest/meta-data/ (AWS IMDSv1) as the target. The server fetches the URL via axios; if the response contains parseable feed metadata or HTML link elements advertising RSS/Atom feeds, those fields are returned to the attacker. Even when the target does not return parseable feed content, the attacker can distinguish open from closed internal ports through differing error responses, enabling systematic internal network enumeration from an authenticated session.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 20, 2026

Server-side request forgery in Omnivore's scanFeedsResolver GraphQL endpoint allows authenticated users to direct the API server to fetch arbitrary internal URLs, bypassing the validateUrl() guard consistently applied elsewhere in the same codebase. Reachable internal endpoints return partial feed metadata (URL, title, description, type) and advertised RSS/Atom link elements; unreachable ports are distinguishable through error differentiation, enabling internal network enumeration. No public exploit has been identified and this vulnerability is not listed in CISA KEV; an upstream patch has been merged as commit c4d7d8562.

RemediationAI

Apply the upstream patch at commit c4d7d8562e6b9aabb1d8e4dabca268e314baa43a (https://github.com/omnivore-app/omnivore/commit/c4d7d8562e6b9aabb1d8e4dabca268e314baa43a), which adds validateUrl(url) to both scanFeedsResolver and setWebhookResolver. A specific patched release version has not been independently confirmed - the fix is available on the main branch but is not tied to a tagged release in the provided data, so operators should build from the patched commit or monitor for an official release. As a compensating control prior to patching, restrict the Omnivore API server's outbound network access via host-based or perimeter firewall rules to block egress to RFC-1918 ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), link-local (169.254.0.0/16), and loopback (127.0.0.0/8). This prevents internal endpoint access at the network layer without modifying the application; the trade-off is that intranet-hosted RSS feeds (if any) would also be blocked. Restricting scanFeeds GraphQL access to trusted user roles is an additional control if the platform supports role-based authorization at the resolver level.

Affected VersionsENISA

omnivore 0 <c4d7d8562e6b9aabb1d8e4dabca268e314baa43a

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Omnivore is an open-source read-it-later and RSS aggregation platform. The vulnerable component is the scanFeedsResolver handler in packages/api/src/resolvers/subscriptions/index.ts, which invokes axios.get(url, rssParserConfig()) with a caller-supplied URL and no prior address validation. The codebase already contains a validateUrl() function - backed by the private-ip library - that rejects RFC-1918 and reserved address ranges; this guard is applied to the subscribe path and createPageSaveRequest, but was missing from scanFeedsResolver, creating an inconsistent enforcement gap within the same file. The root cause class is CWE-918 (Server-Side Request Forgery). The affected CPE is cpe:2.3:a:omnivore-app:omnivore:*:*:*:*:*:*:*:*, indicating all versions prior to the patch commit. The patch (commit c4d7d8562e6b9aabb1d8e4dabca268e314baa43a) inserts validateUrl(url) at the entry point of scanFeedsResolver and also adds the same guard to the setWebhookResolver, closing a parallel omission in that handler.

Know when Omnivore gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 5.3 MEDIUM
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
vuln.today AI 4.3 MEDIUM

Network-accessible GraphQL endpoint requires an authenticated session (PR:L); partial metadata disclosure only warrants C:L; no integrity or availability impact; scope unchanged as exploitation remains within the application boundary.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Low
niche open-source read-it-later app, limited enterprise footprint
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy