CVE-2018-1000123

9.8 CRITICAL

📋 TL;DR

This vulnerability in the Ionic Team Cordova iOS Keychain plugin exposes sensitive data like login credentials and passwords through iOS log files. Attackers who gain access to a victim's iOS logs can extract this information. This affects iOS applications using vulnerable versions of the cordova-plugin-ios-keychain plugin.

💻 Affected Systems

Products:
  • cordova-plugin-ios-keychain
Versions: All versions before commit 18233ca25dfa92cca018b9c0935f43f78fd77fbf
Operating Systems: iOS
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects iOS applications using this specific Cordova plugin. The vulnerability is in the logging mechanism of the plugin.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of user credentials, passwords, and other sensitive data stored via the keychain plugin, potentially leading to account takeover and data breaches.

🟠

Likely Case

Exposure of sensitive authentication data to attackers with access to device logs, enabling credential theft and unauthorized access.

🟢

If Mitigated

Limited impact if logs are properly secured and access-controlled, though sensitive data remains exposed in log files.

🌐 Internet-Facing: LOW
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires access to iOS device logs, which typically requires physical access, malware, or compromised device management tools.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Commit 18233ca25dfa92cca018b9c0935f43f78fd77fbf and later

Vendor Advisory: https://github.com/ionic-team/cordova-plugin-ios-keychain/pull/29/commits/980230645c8ea3b531b85401de5e4bca0f860e42#diff-936020291e4c2115faff0171f20672a4

Restart Required: Yes

Instructions:

1. Update cordova-plugin-ios-keychain to version containing commit 18233ca25dfa92cca018b9c0935f43f78fd77fbf or later. 2. Rebuild and redeploy the iOS application. 3. Restart the application on all affected devices.

🔧 Temporary Workarounds

Disable debug logging

all

Configure the application to disable debug logging that may expose sensitive information.

Modify iOS application configuration to set appropriate logging levels (e.g., in Xcode or build settings).

Secure log storage

ios

Implement controls to restrict access to iOS device logs.

Use iOS security features like encrypted logging and access controls to protect log files.

🧯 If You Can't Patch

  • Implement strict access controls to device logs and monitor for unauthorized access.
  • Audit and sanitize logs regularly to remove any exposed sensitive data.

🔍 How to Verify

Check if Vulnerable:

Check the cordova-plugin-ios-keychain plugin version in your project's package.json or plugin.xml. Verify if the commit hash is before 18233ca25dfa92cca018b9c0935f43f78fd77fbf.

Check Version:

cordova plugin list | grep cordova-plugin-ios-keychain

Verify Fix Applied:

Confirm the plugin version includes commit 18233ca25dfa92cca018b9c0935f43f78fd77fbf or later, and test that sensitive data is no longer logged in iOS debug logs.

📡 Detection & Monitoring

Log Indicators:

  • Sensitive data like passwords or login credentials appearing in iOS system or application logs.

Network Indicators:

  • Unusual log access patterns or unauthorized attempts to retrieve device logs.

SIEM Query:

Example: Search for log entries containing keychain-related data or sensitive strings in iOS log sources.

🔗 References

📤 Share & Export