Categories
CVE-2026-103922 critical CVSS 9.3

Vulnerability in @capacitor/android (CVE-2026-103922)

Summary

Vulnerability in @capacitor/android (CVE-2026-103922). Confidential information can be exposed externally. Exploitable via localStorage.

Original description

The description as published by the source.

Impact

Capacitor's WebView navigation guard validated only the host and scheme of a
target URL, not its path. Because the internal HTTP proxy path
(/_capacitor_http_interceptor_) is served at the application's own origin, a
frame navigation to it was always treated as in-app navigation and allowed.

Loading that path as a document caused the native layer to fetch an arbitrary,
caller-specified URL and return the response body to the WebView at the app's
own origin
. Script in that response then ran with full same-origin trust:
access to localStorage, cookies, and every native capability the application
exposes through its registered Capacitor plugins.

The proxy handler was additionally served regardless of whether the
CapacitorHttp plugin was enabled
, so applications that never enabled
CapacitorHttp were also affected.

Exploitation requires a victim to activate a link inside the application's
WebView. Any Capacitor application that renders user-controlled or unsanitized
links (chat messages, comments, rich-text content) is a viable delivery surface.

Both Android and iOS are affected.

Patches

Two changes on each platform:

  1. The navigation guard now blocks frame navigations whose path is the internal
    proxy path.
  2. The proxy handler is served only when CapacitorHttp is enabled, and never
    for a document (main frame) request.

Legitimate CapacitorHttp usage is unaffected. fetch and XMLHttpRequest are
subresource requests an…

Source: NIST National Vulnerability Database NVD GitHub Advisory

Auto-generated summary

Assembled by SecPulse from the source data (CVSS, CWE, affected versions) using templates — no AI involved. Check the original description and references below for exact details.

A vulnerability tracked as CVE-2026-103922 has been found in @capacitor/android.
Attackers can target a specific entry point like localStorage over the network to misuse the product.
Confidential information can be exposed externally. CVSS score: 9.3/10.
What to do: apply the vendor's official patched release.
If unsure, ask your IT team or search "@capacitor/android CVE-2026-103922" on the vendor's site.

CVE-2026-103922 (@capacitor/android) — CWE-346 / CVSS v3 9.3
Attack vector: remote (network-reachable) / unauthenticated
Attack surface: localStorage / CapacitorHttp / fetch / XMLHttpRequest
Plan: 1) Audit SBOM/dependencies, 2) Stage→prod upgrade, 3) Add WAF/proxy monitoring on affected endpoints, 4) Hunt IOCs in logs.
Refs: see the GHSA / vendor advisory / patched release linked on this page.

❓ What is the problem

A vulnerability (CWE-346) exists in @capacitor/android. Attackers reach the vulnerable code path via localStorage without authentication.

📍 Affected scope

Check the vendor advisory for the affected versions of @capacitor/android. Attack surface: localStorage / CapacitorHttp / fetch / XMLHttpRequest.

🔥 Severity

Severity: Critical (CVSS 9.3/10). Confidential information can be exposed externally.

🔧 How to fix

Update to the patched release per vendor advisory.

🛡️ Workaround

Until the patch is applied: disable the affected feature, apply WAF rules, or restrict access via network ACLs.

🔍 Detection

Search webserver/proxy logs for unusual request patterns matching this CVE's known IOCs. Run grep -r '@capacitor/android' . against your dependency files (package-lock.json, requirements.txt, go.sum) to find affected services.

Response actions

Concrete steps and command examples for SOC/SRE teams to execute in order

  1. 1
    Identify exposure identify
    grep -r '@capacitor/android' . | grep -v node_modules

    リポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で @capacitor/android を grep し、稼働しているサービス・バージョンを把握する。

  2. 2
    Post-deployment verification verify
    Confirm patched version is live in production

    パッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。

Affected packages

npm @capacitor/android
[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}]
npm @capacitor/ios
[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}]
swift github.com/ionic-team/capacitor-swift-pm
[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}]
maven com.capacitorjs:core
[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}]

References

We use cookies for analytics and ad measurement. This setting applies to all Game co., Ltd. sites. Details