CVE-2014-0073
📋 TL;DR
This vulnerability allows remote attackers to execute arbitrary JavaScript in the host page of Apache Cordova In-App-Browser plugin for iOS, potentially gaining elevated privileges. It affects iOS applications using vulnerable versions of the Cordova In-App-Browser plugin. Attackers can exploit this via crafted gap-iab: URIs.
💻 Affected Systems
- Apache Cordova In-App-Browser plugin for iOS
📦 What is this software?
Cordova by Apache
⚠️ Risk & Real-World Impact
Worst Case
Complete compromise of the iOS application, allowing attackers to steal sensitive data, perform unauthorized actions, or execute arbitrary code within the app context.
Likely Case
Attackers inject malicious JavaScript to steal session tokens, credentials, or manipulate application behavior to perform unauthorized actions.
If Mitigated
Limited impact with proper input validation and updated plugin versions preventing callback identifier manipulation.
🎯 Exploit Status
Exploitation requires user to visit malicious content in the In-App-Browser. Public proof-of-concept code exists in security advisories.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Standalone plugin 0.3.2+; Cordova 3.0.0+
Vendor Advisory: https://cordova.apache.org/announcements/2014/03/18/ios-inappbrowser.html
Restart Required: Yes
Instructions:
1. Update Cordova to version 3.0.0 or higher. 2. If using standalone plugin, update to version 0.3.2 or higher. 3. Rebuild and redeploy iOS applications with updated plugin.
🔧 Temporary Workarounds
Disable In-App-Browser plugin
allRemove or disable the vulnerable In-App-Browser plugin if not essential for application functionality.
cordova plugin rm org.apache.cordova.inappbrowser
Implement URI validation
allAdd custom validation for gap-iab: URIs before processing in the In-App-Browser.
🧯 If You Can't Patch
- Implement Content Security Policy (CSP) to restrict JavaScript execution
- Monitor for suspicious gap-iab: URI patterns in application logs
🔍 How to Verify
Check if Vulnerable:
Check Cordova version with 'cordova -v' and plugin version with 'cordova plugin ls'. Verify if using vulnerable versions.
Check Version:
cordova -v && cordova plugin ls | grep inappbrowser
Verify Fix Applied:
Confirm Cordova version is 3.0.0+ or standalone plugin is 0.3.2+. Test In-App-Browser functionality with known test vectors.
📡 Detection & Monitoring
Log Indicators:
- Unusual gap-iab: URI patterns in application logs
- JavaScript execution errors from unexpected sources
Network Indicators:
- Requests to malicious domains from In-App-Browser context
- Suspicious JavaScript payloads in network traffic
SIEM Query:
source="app_logs" AND "gap-iab:" AND NOT "expected_callback"
🔗 References
- http://d3adend.org/blog/?p=403
- http://seclists.org/fulldisclosure/2014/Mar/30
- http://www.securityfocus.com/archive/1/531334/100/0/threaded
- http://www.securityfocus.com/bid/65959
- https://exchange.xforce.ibmcloud.com/vulnerabilities/91560
- https://github.com/apache/cordova-plugin-inappbrowser/commit/26702cb0720c5c394b407c23570136c53171fa55
- https://mail-archives.apache.org/mod_mbox/cordova-dev/201403.mbox/%3CCAK_TSXLGJag5Q9ATUCbFtkWvMWX9XnC80kKp-HKi25gPcvV4gw%40mail.gmail.com%3E
- http://d3adend.org/blog/?p=403
- http://seclists.org/fulldisclosure/2014/Mar/30
- http://www.securityfocus.com/archive/1/531334/100/0/threaded
- http://www.securityfocus.com/bid/65959
- https://exchange.xforce.ibmcloud.com/vulnerabilities/91560
- https://github.com/apache/cordova-plugin-inappbrowser/commit/26702cb0720c5c394b407c23570136c53171fa55
- https://mail-archives.apache.org/mod_mbox/cordova-dev/201403.mbox/%3CCAK_TSXLGJag5Q9ATUCbFtkWvMWX9XnC80kKp-HKi25gPcvV4gw%40mail.gmail.com%3E