Native / WebView Bridge (JS <-> Native)

The WebView<->native JavaScript bridge as its own cross-platform trust boundary (Android addJavascriptInterface / WebMessageListener; iOS WKUserContentController / WKScriptMessageHandler). Web content - including a cross-origin iframe - reaches the bridge and, without main-frame/origin validation, callback-id validation, or a permission gate, invokes privileged native functionality. Also covers framework/plugin boundaries (Flutter / React Native / Cordova / Capacitor) where the dangerous code lives in the plugin layer behind an innocent-looking app API. Modelled on 2024-2026 disclosures: Home Assistant Companion (CVE-2026-44698 iframe->bridge token theft; GHSA NFC/QR silent automation; GHSA exported-receiver location spoof), Cordova InAppBrowser (CVE-2026-47430 callback-id injection), and Flutter file_picker (CVE-2026-38093 provider-metadata path traversal).

15 vulnerabilities. OWASP Mobile: M4

VulnerabilityIDPlatformDifficultyOWASPMASVSMASWEMASTG (v2)CWE
WebView Safe Browsing Disabledwebview_safe_browsing_disabledAndroidEASYM8MASVS-PLATFORM-2MASWE-0035MASTG-TEST-0399CWE-1188CWE-693CWE-829
Embedded Mini-App Secret Exposureembedded_miniapp_secret_exposureAndroidiOSMEDIUMM9MASVS-STORAGE-1MASVS-PLATFORM-2MASWE-0001MASTG-TEST-0320CWE-312CWE-522CWE-294
Exported BroadcastReceiver Data Spoofingexported_broadcast_receiver_spoofAndroidMEDIUMM4MASVS-PLATFORM-1MASWE-0032MASTG-TEST-0366CWE-925CWE-862CWE-346
QR / NFC Scan -> Privileged Action Without Confirmationqr_nfc_to_privileged_actionAndroidiOSMEDIUMM4MASVS-PLATFORM-1MASVS-PLATFORM-3MASWE-0032-CWE-306CWE-862CWE-346
WebView Cleartext / Mixed-Content Transport Downgradewebview_cleartext_mixed_content_downgradeAndroidiOSMEDIUMM5MASVS-NETWORK-1MASVS-PLATFORM-2MASWE-0026MASWE-0035MASTG-TEST-0235MASTG-TEST-0237CWE-319CWE-311CWE-829
WebView Remote Debugging Enabledwebview_remote_debugging_enabledAndroidMEDIUMM8MASVS-RESILIENCE-1MASVS-PLATFORM-2MASWE-0063MASTG-TEST-0227CWE-489CWE-215CWE-200
Cross-Origin Iframe -> Native Bridge (No Main-Frame/Origin Check)crossorigin_iframe_to_native_bridgeAndroidiOSHARDM4MASVS-PLATFORM-2MASVS-CODE-4MASWE-0033MASTG-TEST-0334MASTG-TEST-0376CWE-346CWE-1021CWE-668
JS Bridge Callback-ID Injectionjs_bridge_callback_id_injectionAndroidiOSHARDM4MASVS-PLATFORM-2MASVS-CODE-4MASWE-0033MASTG-TEST-0334CWE-345CWE-441CWE-20
JS Bridge Exposes a Privileged Native APIjs_bridge_exposes_privileged_apiAndroidiOSHARDM4MASVS-PLATFORM-2MASVS-AUTH-1MASWE-0033MASTG-TEST-0334CWE-749CWE-862CWE-926
Provider-Controlled Metadata -> Plugin Filesystem Traversalprovider_metadata_to_filesystem_traversalAndroidHARDM4MASVS-PLATFORM-1MASVS-STORAGE-2MASWE-0032-CWE-22CWE-73CWE-20
Shared WebView Mini-App Isolation Failure (Cross-Tenant Cookies)shared_webview_miniapp_isolationAndroidiOSHARDM4MASVS-PLATFORM-2MASVS-STORAGE-2MASWE-0034-CWE-346CWE-668CWE-200
WebView JS Injection + SSL-Validation Bypasswebview_js_injection_ssl_bypassAndroidiOSHARDM5MASVS-NETWORK-1MASVS-PLATFORM-2MASWE-0027MASWE-0035MASTG-TEST-0284CWE-295CWE-79CWE-749
WebView Origin Confusion -> Local-Only IPCwebview_origin_confusion_ipcAndroidiOSHARDM4MASVS-PLATFORM-2MASVS-CODE-4MASWE-0034MASTG-TEST-0334CWE-346CWE-863CWE-441
WebView SOP / CSP Disabled (Cross-Origin & Inline Script)webview_sop_csp_disabledAndroidiOSHARDM4MASVS-PLATFORM-2MASVS-CODE-4MASWE-0034MASTG-TEST-0335MASTG-TEST-0333CWE-346CWE-79CWE-829
WebView URL-Loading Policy Confusionwebview_url_loading_policy_confusionAndroidiOSHARDM4MASVS-PLATFORM-2MASVS-CODE-4MASWE-0035MASTG-TEST-0332MASTG-TEST-0398CWE-20CWE-441CWE-939