From cdaa5cc95f29180b6b1a667b01baba66fe910e6f Mon Sep 17 00:00:00 2001 From: Niklas Merz Date: Wed, 10 Jun 2026 23:49:11 +0200 Subject: [PATCH] Improve GHSA-q42j-x8rq-pjg6 --- .../GHSA-q42j-x8rq-pjg6.json | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/advisories/unreviewed/2026/06/GHSA-q42j-x8rq-pjg6/GHSA-q42j-x8rq-pjg6.json b/advisories/unreviewed/2026/06/GHSA-q42j-x8rq-pjg6/GHSA-q42j-x8rq-pjg6.json index 161fb5840f379..e4ed680642b9c 100644 --- a/advisories/unreviewed/2026/06/GHSA-q42j-x8rq-pjg6/GHSA-q42j-x8rq-pjg6.json +++ b/advisories/unreviewed/2026/06/GHSA-q42j-x8rq-pjg6/GHSA-q42j-x8rq-pjg6.json @@ -6,19 +6,44 @@ "aliases": [ "CVE-2026-47430" ], + "summary": "Cordova Plugin InAppBrowser: iOS: Arbitrary Cordova callback IDs can be dispatched without validation from InAppBrowser WebViews.", "details": "## Summary\n\nThe 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.\n\n\n## Impact\n\nAn 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: '', d: '...'})` to fire callbacks belonging to any other installed Cordova plugin (Camera, Contacts, File, Geolocation). Cordova callback IDs follow the predictable format ``, 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.\n\nThis issue affects Cordova Plugin InAppBrowser: from 3.1.0 through 6.0.0.\n\nUsers are recommended to upgrade to version 6.0.1, which fixes the issue.", "severity": [ { "type": "CVSS_V4", - "score": "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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X" + "score": "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" + } + ], + "affected": [ + { + "package": { + "ecosystem": "npm", + "name": "cordova-plugin-inappbrowser" + }, + "ranges": [ + { + "type": "ECOSYSTEM", + "events": [ + { + "introduced": "0" + }, + { + "fixed": "6.0.1" + } + ] + } + ] } ], - "affected": [], "references": [ { "type": "ADVISORY", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-47430" }, + { + "type": "PACKAGE", + "url": "https://github.com/apache/cordova-plugin-inappbrowser" + }, { "type": "WEB", "url": "https://lists.apache.org/thread/sb539nss3b0545wnyt1pbh7zgwjvz2qq"