mobile-insecure-storage
Installation
SKILL.md
Mobile Insecure Data Storage
What Is Broken and Why
Mobile apps often store sensitive data (credentials, tokens, PII, keys) in locations accessible to other apps, backups, or physical device extraction. Android's SharedPreferences and iOS's NSUserDefaults are plaintext XML/plist files readable with root/jailbreak. External storage is world-readable. Backups (ADB/iCloud) can expose the entire app sandbox unless explicitly excluded. Logging APIs persist sensitive data in system logs readable by other apps. The attacker gains access to credentials or session tokens without ever touching the backend.
Key Signals
allowBackup="true"in AndroidManifest.xml withoutfullBackupContentexclusion rules- SharedPreferences files in
/data/data/<pkg>/shared_prefs/containing tokens, passwords, or keys - SQLite databases in the app sandbox without SQLCipher encryption
- Files in
/sdcard/orgetExternalStorageDirectory()containing sensitive content - iOS files lacking
NSFileProtectionCompletedata protection class - Keychain items with
kSecAttrAccessibleAlwaysor no accessibility constraints - Log statements (
Log.d,NSLog,print) containing session tokens or user data - Input fields without
inputType="textPassword"orsecureTextEntry=true - App switcher screenshots capturing password or payment screens