CVE-2026-103922: @capacitor android Origin Validation Error
Vulnerability summary
CVE-2026-103922 is a critical (CVSS 9.3) Origin Validation Error vulnerability in @capacitor android. EPSS estimates a 0.21% chance of exploitation in the next 30 days, higher than 10.9% of scored vulnerabilities.
Timeline
- 01-10-2026PublishedVulnerability first disclosed.
- 01-10-2026Last modifiedVulnerability information updated.
Description
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.
CVSS metrics
4 scores · 4 sources · 1 version- OSV · NpmEcosystem advisory · calculated9.3CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
- OSV · MavenEcosystem advisory · calculated9.3CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
- NVDNIST9.3CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
EPSS trend
Probability
0.21%
Chance of exploitation in the next 30 days
Percentile
11%
Versus all other CVEs
30-day change
Change unavailable
Change unavailable
Known exploited
Compare KEV catalogsNot in any of the 3 tracked catalogs.
Public exploits
0 foundNo public exploits indexed.
Weaknesses
CWE · root cause- CWE-346Origin Validation ErrorThe product does not properly verify that the source of data or communication is valid.
- CWE-441Unintended Proxy or Intermediary ('Confused Deputy')The product receives a request, message, or directive from an upstream component, but the product does not sufficiently preserve the original source of the request before forwarding the request to an external actor that is outside of the product's control sphere. This causes the product to appear to be the source of the request, leading it to act as a proxy or other intermediary between the upstream component and the external actor.
Affected systems
@capacitor4 products
- android≥ 8.5.0, < 8.5.1 | ≥ 8.3.5, < 8.4.3 | ≥ 8.0.0, < 8.3.5 | ≥ 7.0.0, < 7.6.9 | ≥ 6.0.0, < 6.2.2
- ios≥ 8.5.0, < 8.5.1 | ≥ 8.3.5, < 8.4.3 | ≥ 8.0.0, < 8.3.5 | ≥ 7.0.0, < 7.6.9 | ≥ 6.0.0, < 6.2.2
- android≥ 6.0.0, < 6.2.2 | ≥ 7.0.0, < 7.6.9 | ≥ 8.5.0, < 8.5.1 | ≥ 8.3.5, < 8.4.3 | ≥ 8.0.0, ≤ 8.3.4
- ios≥ 6.0.0, < 6.2.2 | ≥ 7.0.0, < 7.6.9 | ≥ 8.5.0, < 8.5.1 | ≥ 8.3.5, < 8.4.3 | ≥ 8.0.0, ≤ 8.3.4
Com.capacitorjs2 products
- core≥ 8.5.0, < 8.5.1 | ≥ 8.3.5, < 8.4.3 | ≥ 8.0.0, < 8.3.5 | ≥ 7.0.0, < 7.6.9 | ≥ 6.0.0, < 6.2.2
- core≥ 6.0.0, < 6.2.2 | ≥ 7.0.0, < 7.6.9 | ≥ 8.5.0, < 8.5.1 | ≥ 8.3.5, < 8.4.3 | ≥ 8.0.0, ≤ 8.3.4
Github.com/ionic-team1 product
- capacitor-swift-pm≥ 6.0.0, < 6.2.2 | ≥ 7.0.0, < 7.6.9 | ≥ 8.5.0, < 8.5.1 | ≥ 8.3.5, < 8.4.3 | ≥ 8.0.0, ≤ 8.3.4
Ionic-team1 product
- capacitor≥ 6.0.0, < 6.2.2 | ≥ 7.0.0, < 7.6.9 | ≥ 8.0.0, < 8.3.5 | ≥ 8.3.5, < 8.4.3 | ≥ 8.5.0, < 8.5.1
Swift1 product
- github.com/ionic-team/capacitor-swift-pm≥ 8.5.0, < 8.5.1 | ≥ 8.3.5, < 8.4.3 | ≥ 8.0.0, < 8.3.5 | ≥ 7.0.0, < 7.6.9 | ≥ 6.0.0, < 6.2.2
5 vendors · 9 products