Description
## Summary

The iOS implementation of `cordova-plugin-inappbrowser` passes the `id` field from a `WKScriptMessage` body to `commandDelegate sendPluginResult:callbackId:` with no format validation (`CDVWKInAppBrowser.m:560–574`). Any web content loaded inside the InAppBrowser can fire any pending Cordova callback in the host app by posting a message whose `id` field is a guessable or enumerated callback identifier. An attack abusing this weakness must be tailored to the specific plugins and callback IDs the host app uses. Though an attacker with knowledge of common Cordova plugin configurations could craft reusable payloads targeting widely-adopted plugins.


## Impact

An unauthenticated remote attacker who controls content displayed in the InAppBrowser — via a URL the app opens (OAuth redirect, marketing link, deep-link target) or a network interception — can call `window.webkit.messageHandlers.cordova_iab.postMessage({id: '<victim-callback-id>', d: '...'})` to fire callbacks belonging to any other installed Cordova plugin (Camera, Contacts, File, Geolocation). Cordova callback IDs follow the predictable format `<PluginName><sequential-integer>`, making enumeration feasible. Successful exploitation allows the attacker to spoof plugin results across trust boundaries — for example, injecting a forged camera approval, a fabricated contacts list, or a crafted file-read response.

This issue affects Cordova Plugin InAppBrowser: from 3.1.0 through 6.0.0.

Users are recommended to upgrade to version 6.0.1, which fixes the issue.
Published: 2026-06-08
Score: 9.5 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Cordova Plugin InAppBrowser for iOS forwards the callback identifier contained in a WKScriptMessage body directly to the Cordova runtime without any validation. This omission allows any web content rendered within an InAppBrowser window to trigger any pending Cordova callback by posting a message whose id field is a guessed or enumerated callback identifier. Callback identifiers follow a predictable pattern, the plugin name followed by a sequential integer, so an attacker can enumerate valid identifiers for commonly used plugins such as Camera, Contacts, File, and Geolocation. Successful exploitation enables the attacker to inject forged plugin responses across trust boundaries— for example, by spoofing camera approvals, fabricating contact lists, or producing false file‑read data—effectively bypassing the host application's intent and access controls.

Affected Systems

Apache Cordova Plugin InAppBrowser versions 3.1.0 through 6.0.0 are vulnerable because they lack validation of the callback identifier. The issue was remedied in version 6.0.1, which introduces proper verification before dispatching plugin results.

Risk and Exploitability

The reported CVSS score of 9.5 indicates a critical severity. The EPSS score of 0.00723 (~0.7%) suggests that, while exploitation probability is low, it is not negligible and could be realized by a determined attacker. The vulnerability is not yet listed in CISA's KEV catalog. An attacker needs only control over content displayed in an InAppBrowser instance—either by directing the app to load a malicious URL (such as during an OAuth redirect) or by intercepting network traffic—and can then enumerate callback identifiers to fire arbitrary Cordova callbacks, making the attack feasible for applications that embed common Cordova plugins.

Generated by OpenCVE AI on August 13, 2026 at 22:54 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Cordova Plugin InAppBrowser to 6.0.1 or later, which validates the callback identifier before dispatch.
  • Restrict the domains that are allowed to open InAppBrowser windows, using a whitelist or disabling the component for untrusted content to reduce the attack surface.
  • Implement an application‑level check that verifies callback identifiers against an expected pattern or a whitelist before invoking the Cordova runtime, providing temporary protection until the official patch is applied.

Generated by OpenCVE AI on August 13, 2026 at 22:54 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-q42j-x8rq-pjg6 Cordova Plugin InAppBrowser: iOS: Arbitrary Cordova callback IDs can be dispatched without validation from InAppBrowser WebViews.
History

Tue, 09 Jun 2026 09:00:00 +0000

Type Values Removed Values Added
First Time appeared Apache
Apache cordova In-app-browser
Vendors & Products Apache
Apache cordova In-app-browser

Mon, 08 Jun 2026 13:30:00 +0000

Type Values Removed Values Added
References
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Mon, 08 Jun 2026 11:45:00 +0000

Type Values Removed Values Added
Description ## Summary The iOS implementation of `cordova-plugin-inappbrowser` passes the `id` field from a `WKScriptMessage` body to `commandDelegate sendPluginResult:callbackId:` with no format validation (`CDVWKInAppBrowser.m:560–574`). Any web content loaded inside the InAppBrowser can fire any pending Cordova callback in the host app by posting a message whose `id` field is a guessable or enumerated callback identifier. An attack abusing this weakness must be tailored to the specific plugins and callback IDs the host app uses. Though an attacker with knowledge of common Cordova plugin configurations could craft reusable payloads targeting widely-adopted plugins. ## Impact An unauthenticated remote attacker who controls content displayed in the InAppBrowser — via a URL the app opens (OAuth redirect, marketing link, deep-link target) or a network interception — can call `window.webkit.messageHandlers.cordova_iab.postMessage({id: '<victim-callback-id>', d: '...'})` to fire callbacks belonging to any other installed Cordova plugin (Camera, Contacts, File, Geolocation). Cordova callback IDs follow the predictable format `<PluginName><sequential-integer>`, making enumeration feasible. Successful exploitation allows the attacker to spoof plugin results across trust boundaries — for example, injecting a forged camera approval, a fabricated contacts list, or a crafted file-read response. This issue affects Cordova Plugin InAppBrowser: from 3.1.0 through 6.0.0. Users are recommended to upgrade to version 6.0.1, which fixes the issue.
Title Cordova Plugin InAppBrowser: iOS: Arbitrary Cordova callback IDs can be dispatched without validation from InAppBrowser WebViews
Weaknesses CWE-20
References
Metrics cvssV4_0

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


Subscriptions

Apache Cordova In-app-browser Cordova Inappbrowser
cve-icon MITRE

Status: PUBLISHED

Assigner: apache

Published:

Updated: 2026-06-08T12:56:23.693Z

Reserved: 2026-05-19T19:48:39.914Z

Link: CVE-2026-47430

cve-icon Vulnrichment

Updated: 2026-06-08T11:41:19.007Z

cve-icon NVD

Status : Analyzed

Published: 2026-06-08T12:16:32.193

Modified: 2026-07-23T07:10:00.113

Link: CVE-2026-47430

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-13T23:00:06Z

Weaknesses