Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure victim to activate untrusted link
-
DeliveryNavigate frame to /_capacitor_http_interceptor_ path
-
ExploitNative proxy fetches attacker-controlled URL
-
ExecutionResponse rendered as document at app origin
-
ImpactExfiltrate same-origin storage/cookies and invoke plugins
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Origin validation
|
| Exploitation Conditions | The victim must be running a mobile app built on an affected Capacitor release (6.0.0 up to but not including 6.2.2 / 7.6.9 / 8.3.5 / 8.4.3 / 8.5.1) on Android or iOS, and must activate an attacker-supplied untrusted link inside the app's WebView (UI:R is the primary limiting factor). No authentication and no special configuration are required: critically, the app remains exploitable even when the CapacitorHttp plugin is DISABLED, because affected releases serve the /_capacitor_http_interceptor_ proxy path regardless of that setting - so disabling CapacitorHttp is NOT a mitigation. The realistic limiters are therefore only (1) the one required user interaction and (2) the app not yet being updated to a fixed version; there is no dependency on a non-default feature flag. |
| Impact | This is a genuine high-priority issue, not a CVSS-inflated one. The CVSS:3.1 vector (AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N, 9.3) describes a network-reachable, low-complexity, unauthenticated flaw whose only gating factor is a single user action (UI:R). The scope change (S:C) is well-justified: the native proxy renders attacker-fetched content inside the application's own origin, crossing the WebView security boundary, which is exactly what grounds the High confidentiality and integrity impacts (same-origin storage, cookies, and registered plugin capabilities). The CWE-346 (origin/scheme validation gap) is corroborated by the source-code evidence - the fix adds a path check in Bridge.launchIntent and gates WebViewLocalServer on request.isForMainFrame()/CapacitorHttp being enabled - so the technical mechanism is confirmed, not merely described. Exploitation status: no public exploit identified at time of analysis; there is NO EPSS score, NO CISA KEV listing, and NO POC provided in the input, so real-world exploitation signals are absent and cannot be asserted. The combination is 'high theoretical severity, unproven in-the-wild activity': treat as a priority to patch (broadly deployed framework, default-config exposure, aggravating fact that CapacitorHttp being disabled does NOT mitigate), but there is no evidence of active or automated exploitation at this time. One nuance worth verifying: the flaw is delivered over the network but ultimately abuses a locally-served proxy path, so AV:N is appropriate (attacker supplies a remote link/URL) even though the trigger is a client-side navigation. |
| Exploit ScenarioDerived | An attacker crafts a malicious link and lures a user of a Capacitor-based mobile app into activating it (e.g. via a message, ad, or compromised page rendered in-app). Activation navigates a frame to the app's own-origin /_capacitor_http_interceptor_ path, whose native proxy fetches an attacker-chosen URL and returns the response as a document at the app's origin, letting the attacker's script read same-origin storage and cookies and invoke registered Capacitor plugins. No public exploit code is identified in the provided data, but the GitHub security advisory and fix commits confirm the mechanism. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 01, 2026
Untrusted-link activation inside an Ionic Capacitor app on Android or iOS can render attacker-controlled HTML at the application's own origin via the internal /_capacitor_http_interceptor_ proxy path, giving that script full same-origin access to storage, cookies and registered Capacitor plugin capabilities. Affected releases are 6.0.0 up to (but not including) 6.2.2, 7.6.9, 8.3.5, 8.4.3 and 8.5.1; exploitation requires the victim to activate an attacker-supplied link in the WebView (UI:R) but no authentication (PR:N) and no non-default feature flag, so apps are exposed even when the CapacitorHttp plugin is disabled because vulnerable builds serve the proxy path regardless of that setting. No public exploit code or confirmed active exploitation was identified at time of analysis, though the high CVSS score of 9.3 (S:C/C:H/I:H) and the broad mobile install base make patch urgency high.
RemediationAI
Upgrade to a vendor-released fixed version on the matching maintenance line: Capacitor 6.2.2, 7.6.9, 8.3.5, 8.4.3 or 8.5.1 (see the advisory at https://github.com/ionic-team/capacitor/security/advisories/GHSA-rvm3-566m-v7fv and the fix commits such as 430356a91e1419fc66862dc09835081aa501677e for the Android Bridge path check and WebViewLocalServer main-frame restriction). Note explicitly that disabling the CapacitorHttp plugin is NOT a mitigation: vulnerable releases serve the /_capacitor_http_interceptor_ path regardless of that setting. If immediate upgrade is not possible, the effective compensating control is to prevent untrusted content from being navigated inside the app's WebView - restrict the allowNavigation configuration so only first-party/trusted hosts stay in the WebView and force all other links out to the system browser, and avoid rendering attacker-influenced links, redirects or frames that could target the reserved interceptor path. The trade-off is that broadening external-browser routing changes in-app UX for legitimate cross-origin flows and can break OAuth or deep-link handlers that expect to remain in the WebView, so it should be validated per application. Server-side URL allowlisting of any content the app loads, plus removal of any code that mirrors arbitrary user-supplied URLs into frame navigation, reduces the attack surface further but does not substitute for upgrading; no other vendor-provided workaround was identified in the available data.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 29 packages in maven, npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-346 (Origin Validation Error). Capacitor is a cross-platform native runtime that serves a web application inside a native WebView at a privileged origin (https://localhost on Android, capacitor://localhost on iOS) and exposes a bridge that maps JavaScript calls to native plugins. Its navigation guard inspected only the host and scheme of a target URL, so a URL that preserved the app origin but pointed at the reserved path /_capacitor_http_interceptor_ was treated as in-app and kept inside the WebView. That path is backed by a native HTTP proxy which fetches an attacker-specified URL (via the u= parameter) and returns the response body as a document at the app origin. Because the returned document shares the origin of the real application, any script it contains executes with the same privileges as first-party app code - reading same-origin storage and cookies and invoking any registered Capacitor plugin capability through the bridge. The upstream fix adds a path check in the Android Bridge.launchIntent logic to block navigation to the interceptor path, and hardens WebViewLocalServer so the proxy is only served for XHR/fetch subresources when CapacitorHttp is explicitly enabled and never for main-frame requests; equivalent test scaffolding was added for iOS (HttpInterceptorNavigationTests). Critically, the vulnerable behaviour was not gated by the CapacitorHttp setting, so the standard hardening of disabling that plugin does not remove exposure on unpatched builds.
Know when Capacitor 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
AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
Attacker supplies a remote link (AV:N) with no auth (PR:N) but needs the victim to activate it (UI:R); proxied content executing at the app origin crosses the WebView boundary (S:C) exposing storage/cookies/plugins (C:H/I:H), with no availability impact (A:N).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Capacitor is a cross-platform native runtime for web applications. From 6.0.0 until 6.2.2, 7.6.9, 8.3.5, 8.4.3, and 8.5.1, the Android and iOS WebView navigation guard validates a target URL's host and scheme but not its path, allowing a victim who activates an untrusted link to navigate a frame to /_capacitor_http_interceptor_. The native proxy can fetch an attacker-selected URL and return the response as a document at the application's own origin, allowing script in that response to access same-origin storage, cookies, and registered Capacitor plugin capabilities. Applications remain affected when CapacitorHttp is disabled because affected releases serve the proxy path regardless of that setting. This issue is fixed in versions 6.2.2, 7.6.9, 8.3.5, 8.4.3, and 8.5.1.
Technical POC Analysis
No patch diff is included in the supplied evidence; this is reconstructed from the advisory.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Latest POC
1 public PoC link from github
Sign in to open the public PoC links collected for this CVE.
Executive ViewAI
Ionic Capacitor mobile applications built on affected 6.x, 7.x, 8.x releases can be manipulated through a crafted link into executing attacker-controlled content as if it originated from the app itself, exposing user credentials, session cookies, locally stored data and any native device capabilities the app has registered. Because this affects applications on both Android and iOS across a very large install base and requires no authentication or special configuration to exploit, any organization shipping or distributing a Capacitor-based app faces data-disclosure and account-takeover risk at scale.
No vendor-released patch identified at time of analysis. Interim mitigations: block untrusted link activation inside the app WebView and route external links to the system browser; enforce an explicit WebView navigation allowlist and deny the /_capacitor_http_interceptor_ proxy path; disable or strictly gate deep-link/universal-link handling for untrusted senders; reduce secrets, tokens and personal data held in WebView-accessible storage and cookies and shorten session lifetimes; register only the Capacitor plugins required by the app to limit what same-origin script could reach; and monitor mobile app telemetry for anomalous in-app navigation or plugin invocation. Upgrading to the advisory's first unaffected releases (6.2.2, 7.6.9, 8.3.5, 8.4.3, 8.5.1) should be pursued as soon as vendor guidance confirms them.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-90973
GHSA-rvm3-566m-v7fv
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB